所以我在MySQL表中列出了许多行,每行旁边都有一个复选框,您可以选择这些行,然后单击列' sumokejo'中的按钮更新编号。它工作正常,但只对第一行,它应该更改所有选定的行,但它只适用于第一行,无论您选择它们的顺序。
$pasirinko = implode(',', $_POST['checkbox']);
$susimokejo= 0;
$sumokejo1 = $conn->prepare("UPDATE mokiniai SET sumokejo=? WHERE id IN(?)");
if ($sumokejo1 === false) {
trigger_error($this->mysqli->error, E_USER_ERROR);
}
$sumokejo1->bind_param("is", $susimokejo, $pasirinko);
if ($sumokejo1->execute()) {
echo $pasirinko;
//echo '<meta http-equiv="refresh" content="0">';
?>
<?php
}
else {
echo 'something is not right';
}
echo $pasirinko
仅用于测试,它正确显示了一系列选定的行&#39;这样的ids:18,16,19。所以我想唯一剩下的就是IN()
函数。
我使用xampp和MariaDB这可能有问题吗?我应该安装纯MySQL吗?
感谢您的帮助!
答案 0 :(得分:0)
对于任何想知道我通过使用for循环而不是IN()解决了这个问题的人 它看起来像这样:
$pasirinko = $_POST['checkbox']; // my array of IDs
$susimokejo= 0;
$sumokejo = $conn->prepare("UPDATE mokiniai SET sumokejo=? WHERE id = ?");
for ($i = 0; $i<count($pasirinko); $i++) {
$sumokejo->bind_param("is", $susimokejo, $pasirinko[$i]);
$sumokejo->execute();
}
echo '<meta http-equiv="refresh" content="0">';
$sumokejo->close();