我正在创建一个购物车系统,并试图找到一种方法,让一个简单的按钮在按下后删除相应的行。然而,我似乎找不到一种方法来动态地使用while循环来实现这一点。
<?php
//connect to DB.
$con = mysqli_connect("localhost", "root", "", "books");
if(mysqli_connect_errno())
{
echo "Failed to connect to MySql: ". mysqli_connect_error();
}
$query = "SELECT * FROM cart WHERE customerID = '$_SESSION['id']'";
$result = mysqli_query($con, $query);
//creates a table for dumping the DB to, loops through the DB and posts the contents elegantly.
echo "<table>";
while($row = mysqli_fetch_array($result))
{
echo "<tr><td>" . $row['bookAuthor'] . "</td><td>" . $row['bookTitle'] . "</td><td>" . $row['bookPrice'] . "</td></tr>";
$totalprice += $row['bookPrice'];
}
echo "</table>";
echo "The total present price is: $".$totalprice;
//closes the conncection to the DB
mysqli_close($con);
?>
我曾考虑过将echo查询语句放入数据库,并在while循环中添加"$row['deletebutton']",但我不确定这是否一定有效。
简单的方法是创建一个新页面并将消息发送到此页面以删除项目。因此,在表中添加一个带有链接的新列
<a href="removeItemFromBasket.php?id=2">delete</a>
在页面中,您处理这个值。
要扩展发布到问题的评论,您可以将其添加到您的行中:
echo "<tr><td>" . $row['bookAuthor'] . "</td><td>" . $row['bookTitle'] . "</td><td>" . $row['bookPrice'] . "</td><td><input type='checkbox' name='remove[]' value='" . $row['ROW_ID'] . "' /></td></tr>";
然后用表格中提交的数据,你可以做这样的事情:
$query = "DELETE FROM cart WHERE ROW_ID IN (" . implode(',',$_POST['remove']) . ")";
请记住,在查询中使用remove之前,请检查它的值。