我正在尝试使用提交按钮,同时在选中复选框的每一行中更新状态列,从'Ikke Betalt‘到'Betalt’。基本上,这是一个活动的参与者名单,我希望能够‘检查’他们一旦他们支付。
请参见表:
我的代码
<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>
Php
$sql = "SELECT * FROM t_launch ORDER BY launch_date ASC";
$result = mysqli_query($conn, $sql);
if (mysqli_num_rows($result) > 0) {
// Output data of each row
while($row = mysqli_fetch_assoc($result)) {
echo '<tr>' . PHP_EOL;
echo '<td><input type="checkbox" name="betaling[]" value="' .$row["launch_id"]. '"></td>' . PHP_EOL;
echo '<td>' . $row["launch_id"] . '</td>' . PHP_EOL;
echo '<td>' . $row["launch_firstname"] . ' ' . $row["launch_lastname"] . '</td>' . PHP_EOL;
echo '<td>' . $row["launch_number"] . '</td>' . PHP_EOL;
echo '<td>' . $row["launch_email"] . '</td>' . PHP_EOL;
echo '<td>' . $row["launch_guests"] . '</td>' . PHP_EOL;
echo '<td>' . $row["launch_date"] . '</td>' . PHP_EOL;
echo '<td>' . $row["launch_status"] . '</td>' . PHP_EOL;
echo '</tr>' . PHP_EOL;
}
}
else {
echo "0 results";
}
foreach ($_POST['betaling'] as $launch_id) {
mysql_query("UPDATE `t_launch` SET `launch_status` = 'Betalt' WHERE `launch_id` = '$betaling'");
}
php的第一部分列出了一个很好的表,但在搜索了几个小时之后,我还没能破解第二个更新部分。
我已经使用静态ID在我的数据库中测试了SQL UPDATE调用,并确认它可以工作,但目前页面只是更新而不更新任何内容。
已解决
在与一位有一定php经验的朋友交谈后,我们找到了一个解决方案:
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());
}
我们必须重新格式化数组以满足sql的要求。
注意-我们还修复了一些关于mysql和mysqli的语法错误(我把它们弄混了)
https://stackoverflow.com/questions/50389782
复制相似问题