2011-02-27 152 views
0

我有一種形式,像這樣:多維數組到MySQL

Question: <input type="text" name="question[][text]" id="question" /> 
    Type: 
    <select name="question[][type]" id="type"> 
    <option value="1to5scale">1 to 5 scale</option> 
    <option value="freetext">Open text</option> 
    </select> 

這被視用戶多少項目要重複(通過jQuery的克隆)。而我的PHP的行動形式包含:

foreach ($_POST['question'] as $key=>$question) 
{ 
    if ($key >= 1) { 
    $question_text = $question['text']; 
    $type = $question['type']; 
    $query = " INSERT INTO questions (question_text, survey_id, type) ". 
    " VALUES ('$question_text','$survey_id', '$type')"; 
    mysql_query($query) or die('Error ,query failed'); 
    } 
} 

每個問題有一個文本項目和一個類型項目。但是,在數據庫中,每個問題項目添加一行(如果這是有意義的......),而不是每個完整問題一行。任何想法,我錯了,它很難調試我發現的表格...

+3

我可以從太空看到這些安全漏洞! – 2011-02-27 19:08:55

+0

同意。快速和骯髒,而我制定了邏輯。 – trh88 2011-02-27 20:56:21

回答

1

將表單元素名稱從question[][type]更改爲question[type][]。這個表單所做的就是添加到每個表單元素的問題數組([]意味着添加一個新的數組元素)。

正如評論所暗示的,確保您清理輸入。