2014-02-15 46 views
0

對不起,我提前壞英語。MySQL表內的另一個?

所以我剛開始學習MySQL。

我試圖創建一個簡單的應用程序,其中我必須能夠創建一個「類別的問題」(添加類別名稱),然後在每個類別中我必須添加一個「問題」列表,我做了一個簡單的html後臺,當然包含一個<input>(文本字段),一個<form>(action =「process.php」)&按鈕。

相同的代碼來添加問題。

這裏是process.php代碼

<?php 

include("includes/connect.php"); 
$cat_name=$_POST["cat_name"]; 

$reqAdministrateurs = mysql_query("INSERT INTO categories (cat_name) VALUES ('$cat_name')"); 

header("location:categories.html"); 
?> 

一切正常,我能夠加入MySQL表內的類別名稱(即我所謂的「類別」),現在我有點失落(嗯,其實很多)如何創建這個問題列表?我的意思是我如何在指定的「類別」中添加問題?啊,順便說一句,我做了一個下拉菜單的類別(但我不知道如何從數據庫中導入類別列表),然後一旦類別被選中,我必須能夠添加一個問題。

我希望我自己清楚&感謝

+1

所以表問題,它涉及到category_id(或名稱,但它不被認爲是好的做法)。一列 - 類別 - 第二個問題。這樣,當你有問題的類別'X'3行時,一旦你選擇問題類別='X'',你將會收到這3行 –

+1

phpMyAdmin **不是數據庫引擎** – Mark

+0

所以我的概念本身是錯誤的,它不是一個表內另一個,但兩個表連接在一起(對嗎?),我會嘗試它,讓你知道謝謝你的提示 –

回答

0

你需要保持相同的兩個表。

表1:

應該有與類別名稱以及相應的自動增量主鍵。

列名

id (auto increment integer value) 
name (varchar 200) 

表1:問題

應該有這樣一個問題列沿着自動增量主鍵。 我們必須保持一個類別id作爲foriegn鍵在此表

列名

id (auto increment integer value) 
question (may be text or varchar) 
category_id (from table1 categories) 

現在你可以將你當前使用的防止你的代碼的變化不大做的類別名稱SQL注入

注:mysql_*是貶低你必須使用mysqli_*PDO

<?php 

include("includes/connect.php"); 
$cat_name=$_POST["cat_name"]; 

$cat_name = mysql_real_escape_string($cat_name); // prevent sql injections 

$reqAdministrateurs = mysql_query("INSERT INTO categories (cat_name) VALUES ('$cat_name')"); 

header("location:categories.html"); 
?> 

現在做一個形式,這需要你的類ID和quetion的輸入和表2中提交:問題

我認爲現在起你自己做,因爲你是學生。並且必須自己做更多。如果有任何問題或疑問,我會明確幫助你。

+0

我會嘗試它,讓你知道,謝謝:) –