Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/67.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在mysql和php中使用foreach_Php_Mysql_Arrays_Foreach - Fatal编程技术网

在mysql和php中使用foreach

在mysql和php中使用foreach,php,mysql,arrays,foreach,Php,Mysql,Arrays,Foreach,我有两个数组selected和questiondesc,我想将其更新到数据库中,但我的代码似乎不起作用。是否可以对每一个进行嵌套 <?php do { ?> <tr> <th width="170" scope="col"> <input type="checkbox" name="selected[]" value="<?php echo $row_Record

我有两个数组selected和questiondesc,我想将其更新到数据库中,但我的代码似乎不起作用。是否可以对每一个进行嵌套

<?php do { ?>
    <tr>
        <th width="170" scope="col">
            <input type="checkbox" name="selected[]"
                   value="<?php echo $row_Recordset1['question_id'];?>"/>
            Description:
        </th>
        <td colspan="2" scope="col">old:
            <?php echo $row_Recordset1['question_description']; ?>
            new:<input name="questiondesc[]" type="text" size="50"/>/td>
        <td width="549" colspan="2" scope="col">
            <div align="left">
        </td>
    </tr>
<?php
} while ($row_Recordset2 = mysql_fetch_assoc($Recordset2));

if (isset($_POST['selected'])) {
    $selected = $_POST['selected'];
    $question = $_POST['questiondesc'];

    foreach ($selected as $enable) {
        mysql_query("
          UPDATE exam_questions
          SET question_description = '$question'
          WHERE question_id = '$selected'
        ") or die(mysql_error());
    }
}

新建:/td>


新增:您可以使用
代替
,并确保正确清理数据:

for ($i = 0; $i < sizeof($selected); $i++)
{
    $sql = sprintf("UPDATE exam_questions 
                       SET question_description = '%s' 
                     WHERE question_id = '%s'", 
           mysql_real_escape_string($question[$i]), 
           mysql_real_escape_string($selected[$i]));
    mysql_query($sql)or die(mysql_error());
}
for($i=0;$i
请记住,以上假设问题和选项的顺序相同。

更改此行:

mysql_query("UPDATE exam_questions 
                SET question_description = '$question' 
              WHERE question_id = '$enable' ")or die(mysql_error());

是的,你可以用foreach做foreach。你可以在你需要的时候筑巢。如果你写下你会遇到什么样的错误会更好?你调试过这个查询了吗?
mysql_query("UPDATE exam_questions 
                SET question_description = '$question' 
              WHERE question_id = '$enable' ")or die(mysql_error());