PHP SQL:如果选中复选框,则更新多行的值
我正在尝试更新复选框选中的每一行中的状态列,从“ike Betalt”到“Betalt”,同时使用提交按钮。基本上,这是一个活动参与者的列表,我希望在他们付款后能够“核对”他们 见表: 我的代码PHP SQL:如果选中复选框,则更新多行的值,php,sql,database,Php,Sql,Database,我正在尝试更新复选框选中的每一行中的状态列,从“ike Betalt”到“Betalt”,同时使用提交按钮。基本上,这是一个活动参与者的列表,我希望在他们付款后能够“核对”他们 见表: 我的代码 <form method="post"> <table> <thead> <tr> <td>Betalt?</td> <td>
<form method="post">
<table>
<thead>
<tr>
<td>Betalt?</td>
<td>Id</td>
<td>Navn</td>
<td>Nummer</td>
<td>Email</td>
<td>Antal Gæster</td>
<td>Dato</td>
<td>Status</td>
</tr>
</thead>
<tbody>
<?php include 'deltagere.php'; ?>
</tbody>
</table>
<p><button name="submit" type="submit" value="submit">Opdater</button></p>
</form>
我们必须重新格式化数组以满足sql的要求
注意-我们还修复了一些关于mysql和mysqli的语法错误(我把它们弄混了)查看您的代码,您似乎在更新函数中使用了错误的变量名。当您应该使用$launch\u id时,您可以使用$betaling 编辑: 我只想指出,mysql_查询已被弃用,所以您可能想看看pdo或Mysqli
此外,您还可以使用“WHERE launch_id in$launch id”编辑一个查询中的所有行$LaunchID应该是括号之间以逗号分隔的ID列表 尝试将表单显示与其逻辑过程分开 例如:将表单更改为
然后将处理全局$\u POST
变量的脚本剪切到新文件中。应该是:
<?php
if (isset($_POST) && isset($_POST['betaling']) && !empty($_POST['betaling']) {
foreach ($_POST['betaling'] as $launch_id) {
mysql_query("UPDATE `t_launch` SET `launch_status` = 'Betalt' WHERE `launch_id` = '$betaling'");
}
}
我尝试了一下-这只返回一个HTTP错误500。实际上我确实试过,但我认为我的代码是伪造的
需要检查mysql\u查询(“更新…”
,当然,还包括db配置文件(定义为$conn
)更新脚本从未工作过。其语法为:mysqli\u查询($con,$query)
感谢您的帮助-您使用WHERE IN的想法真的很有帮助,我们已经解决了!完整的解决方案在我的帖子顶部。请将您的解决方案移至自己的答案,谢谢。
if(isset($_POST['checkednames'])) {
$ids = join(', ', $_POST['checkednames']);
mysqli_query($conn, "UPDATE `t_launch` SET `launch_status` = 'Betalt' WHERE `launch_id` IN ($ids)") or die(mysql_error());
}
<?php
if (isset($_POST) && isset($_POST['betaling']) && !empty($_POST['betaling']) {
foreach ($_POST['betaling'] as $launch_id) {
mysql_query("UPDATE `t_launch` SET `launch_status` = 'Betalt' WHERE `launch_id` = '$betaling'");
}
}