2010-04-30 30 views
1

感謝大家幫助我,但知道我很好,真正卡住...希望有人可以建議?PHP將信息保存到MySQL,但不使用硬編碼

我是保存到一個MySQL數據庫當前代碼:

$q1 = $_POST["q1"]; 
$q2 = $_POST["q2"]; 
$q3 = $_POST["q3"]; 
$q4 = $_POST["q4"]; 
$q5 = $_POST["q5"]; 
$q6 = $_POST["q6"]; 
$q7 = $_POST["q7"]; 
$q8 = $_POST["q8"]; 


    $proc = mysqli_prepare($link, "INSERT INTO tresults_bh_main (respondent_id, ip, browser, q1, q2, q3, q4, q5, q6, q7, q8) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?);"); 
    mysqli_stmt_bind_param($proc, "issiiiiiiii", $respondent_id, $ip, $browser, $q1, $q2, $q3, $q4, $q5, $q6, $q7, $q8); 

目前這是所有硬編碼,我需要它使用變量:

我有一個存儲以下信息的數組:

$qs['questions'] - 存儲,例如q1,q2,q3,q4等 - 顯然這些都會根據數字而改變,即。 q10,q11,q12以及數組中的數量 - 因此可能會有4個q或10個q存儲在數組中。

我正在努力讓自己的頭腦靈活,我將如何設置這個硬編碼頁面來處理數組和變量,所以我不必手動編寫頁面代碼。

如果有人可以幫忙,非常感謝。

荷馬。

回答

0

您需要規範化數據庫設計。

你可以把你的第一個表格來記錄一個響應,但RESPONSE_ID存儲作爲一個獨特的,自動遞增的主鍵:

tbl_responses

response_id, respondent_id, ip, browser 

然後添加第二個表來存儲提交的數據。 response_id字段上的兩個表之間形成一個關係。從response_id和question_id創建一個組合鍵,以唯一標識每一行。

tbl_questions

response_id, question_id, value 
+1

我不知道如何回答我的問題? – 2010-04-30 16:51:19