使用PHP while循环创建的按钮不会更新MySQL数据库
我正在使用PHP和MySQL创建一个多用户共享待办事项列表应用程序。目前,我的应用程序通过使用while循环在数据库表上迭代来显示待办事项列表项 所有这些都正常工作,因此我知道我正在连接数据库。while循环的一部分还生成按钮,允许用户“声明”没有人处理的项目,或指示at项目已完成。但是,这些按钮不会更新数据库表使用PHP while循环创建的按钮不会更新MySQL数据库,php,mysql,Php,Mysql,我正在使用PHP和MySQL创建一个多用户共享待办事项列表应用程序。目前,我的应用程序通过使用while循环在数据库表上迭代来显示待办事项列表项 所有这些都正常工作,因此我知道我正在连接数据库。while循环的一部分还生成按钮,允许用户“声明”没有人处理的项目,或指示at项目已完成。但是,这些按钮不会更新数据库表 <?php include 'includes/dbh.inc.php'; $sql = 'SELECT * FROM items WHERE item_is
<?php
include 'includes/dbh.inc.php';
$sql = 'SELECT * FROM items WHERE item_is_done = 0';
$result = mysqli_query($conn, $sql);
while($row = mysqli_fetch_assoc($result)) {
$creator = $row['item_creator'];
$owner = $row['item_owner'];
$id = $row['item_id'];
if (isset($_POST['do_item'])) {
$update = "UPDATE items SET item_owner = $currentID WHERE item_id = $id;";
mysqli_query($conn, $update);
header("Location: ../todo.php?code=doing");
exit();
} else if(isset($_POST['complete_item'])) {
$update = "UPDATE items SET item_is_done = 1 WHERE item_id = $id;";
mysqli_query($conn, $update);
header("Location: ../todo.php?code=done");
exit();
}
echo '<h4>Item ID:</h4>' . $id . '<br><br>';
echo '<h4>Item created by:</h4>' . $creator . '<br><br>';
echo '<h4>Date Added: </h4>' . $row['item_add_date'] . '<br><br>';
echo '<h4>Item Title: </h4>' . $row['item_title'] . '<br><br>';
echo '<h4>Description: </h4>' . $row['item_description'] . '<br>';
if($row['item_owner'] == 'None') {
echo '<br>';
echo '<button type="submit" name="do_item" formaction="todo.php" formmethod="POST">Do Item</button>';
echo '<br>';
} else if($row['item_owner'] != 'None') {
echo '<br>';
echo '<h4>Item is being worked on by: </h4>' . $owner . '<br><br>';
echo '<button type="submit" name="complete_item" formaction="todo.php" formmethod="POST">Complete Item</button>';
echo '<br>';
}
echo '<hr>';
}
?>
我也遇到了同样的问题,我所做的是尝试将更新变量放在“”单引号中 如果它可以帮助您,您可以尝试此查询
$update = "UPDATE items SET item_owner='$currentID' WHERE item_id='$id'";
$update = "UPDATE items SET item_is_done='1' WHERE item_id ='$id'";
您没有将
$currentID
设置为任何值。您的代码易受攻击。在编写SQL查询时使用。@AlexHowansky对不起,我应该描述一下我的数据库是如何设置的。item_creator是创建列表项的人,item_owner是处理列表项的人$currentID正在工作,因为它正在while循环中填充部分待办事项列表项(如屏幕截图所示)。@tyteen4a03谢谢,我将对此进行研究。您知道,只要您单击一个header()
命令,您就不再处于此过程中,对吗?因此,之后(在循环中或循环外)不会执行任何操作。感谢您的回复。早些时候我自己尝试过这个方法,它确实奏效了,但这确实是我一直在寻找的解决方案。现在我有一个新问题。。。当我点击按钮时,它会更新页面上的所有条目,而不仅仅是我点击按钮的条目。但我会问另外一个问题。