这有点奇怪,我可能在这里遗漏了一些明显的东西。一页输出带有复选框的表以显示数据,然后单击按钮挂起(删除)选中了复选框的相关行。我正在尝试通过引用索引来更新MySQL表。动态生成的表将数据发送到PHP中的脚本,如下所示:
<td class="controlpanelrows">
<input type="checkbox" name="suspend[]" value="'. $row {'index'} .'">
</td>
这样可以将每个复选框的值正确地输出为该行的索引值。然后我通过表单将其插入脚本
<form action="suspend.php" method="post">
<table class="general" width="500"><tr>
.
.
.
</tr>
<? listRates(); ?>
</table>
<br><br>
<button class="mainButton" id="remove" value="remove" type="submit">Suspend</button>
</form>
然后脚本更新表,以便:
if (isset($_POST['suspend'])) {
foreach ($_POST['suspend'] as $suspend) {
mysql_query("UPDATE pay_week SET suspend='1' WHERE index='$suspend' ");
}
}
我已经测试过它确实接收到数组,查询本身似乎是问题所在。没有简单的方法来处理数据,否则,因为唯一的唯一元素是索引,脚本将成功接收数据,而只是不更新表。完全相同的脚本对于许多其他数据集也非常适用。索引字段设置为INDEX。
最佳答案
index
是保留字。见https://dev.mysql.com/doc/refman/5.5/en/reserved-words.html
尝试
mysql_query("UPDATE pay_week SET suspend='1' WHERE `index` = '$suspend' ");
关于mysql - MySQL不按索引更新,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/16526477/