0

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

3 回答 3

1

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

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

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

于 2013-08-28T05:46:42.467 回答
0
<? 
    $i =0;
    while ($row_Recordset2 = mysql_fetch_assoc($Recordset2)): 
?>

<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_<?=$i?>" type="text"  size="50" />/td>

<td width="549" colspan="2" scope="col"><div align="left"></td>
</tr>

<? 
     $i ++;
     endwhile; 
?>

if(isset($_POST['selected'])){

  $selected = $_POST['selected'];

  foreach($selected as $id){
      $key = 'questiondesc_' . $id;
      $question = $_POST[$key];
      $sql = "UPDATE exam_questions SET question_description = '" . $question . "' WHERE question_id = '" . $id . "'";
      mysql_query($sql)or die(mysql_error());
   } 
}
于 2013-08-28T05:45:40.830 回答
0

更改此行:

mysql_query("UPDATE exam_questions 
                SET question_description = '$question' 
              WHERE question_id = '$enable' ")or die(mysql_error());
于 2013-08-28T05:49:53.070 回答