我在编写这段代码时需要帮助。任何人都可以帮我找到错误..
if(mysqli_num_rows($result) > 0)
{
while ($row = mysqli_fetch_array($result))
{
$a = $row['ID'];
echo "<tr><td>" . $row['ID'] . "</td><td>" . $row['attended'] . "</td><td>".$row['missed']."</td><td><input type='checkbox' name='present[]' value='$a'>Present</td></tr>";
}
}
if(!empty($_POST['present']))
{
foreach($_POST['present'] as $present)
{
$query = "UPDATE dwdm SET attended = attended + 1 WHERE ID = '{$present}'";
$run_query = mysqli_query($conn, $query);
}
}
我要做的就是将复选框的值存储在一个数组中(存储用户勾选的复选框的相应值)。 然后在数据库中增加一个字段WHERE id =对应的注册号。用户检查。如果两个以上都增加。但当 1)我检查该框,它在第一次不起作用,第二次起作用。 2)当我切换复选框时会发生同样的事情。它会增加未检查的另一行。注意 - 这只在第一次尝试时发生。
答案 0 :(得分:0)
问题是您在执行更新之前查询数据库并显示表,因此您将看到以前的数据。切换订单。
if(!empty($_POST['present']))
{
foreach($_POST['present'] as $present)
{
$query = "UPDATE dwdm SET attended = attended + 1 WHERE ID = '{$present}'";
$run_query = mysqli_query($conn, $query);
}
}
$result = mysqli_query($conn, "SELECT * FROM dwdm");
if(mysqli_num_rows($result) > 0)
{
while ($row = mysqli_fetch_array($result))
{
$a = $row['ID'];
echo "<tr><td>" . $row['ID'] . "</td><td>" . $row['attended'] . "</td><td>".$row['missed']."</td><td><input type='checkbox' name='present[]' value='$a'>Present</td></tr>";
}
}