2011-02-27 153 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][]。这个表单所做的就是添加到每个表单元素的问题数组([]意味着添加一个新的数组元素)。

正如评论所暗示的,确保您清理输入。