我有两个数组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());
    }
}

最佳答案

您可以改用for并确保正确清理数据:

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());
}


请记住,以上假设问题和选择的顺序相同。

10-08 15:24