我正在尝试为旅馆创建房间可用性检查页面,但我遇到了问题。
我有一个数据库,其中有一个名为“rooms”的表,其中列出了具有这些行的所有类型的房间:
- 编号 [INT]
- 姓名(房间类型)[字符]
- capacity(最大容量,不可更改)[INT]
- 已使用(已使用的床位数量,我想动态更改此值!)[INT]
我创建了一个代码,使用 PHP 从数据库中生成房间列表,我想要“+”和“-”按钮在特定房间的已用列中添加或删除一个单元。我该怎么做?
这是我的代码:
<!-- SOME HTML/PHP THAT WORKS -->
<?php if ($roomlist->num_rows > 0) {
// output data of each row
while($room = $roomlist->fetch_assoc()) {
$roomid = $room["id"]; ?>
<div>
<!-- SOME OTHER HTML/PHP THAT WORKS -->
// THE ISSUE IS BELOW, IT SHOWS THE CORRECT AMOUNT BUT $room["used"] DOES NOT UPDATE
<div>
Used: <?php echo $room["used"] . " / " . $room["capacity"] ?>
</div>
<div>
<form action="" method="POST">
<input type="submit" name="remove" value="-" />
<input type="submit" name="add" value="+" />
<?php
if(isset($_POST['remove'])){
$remove_query = mysqli_query("UPDATE rooms SET used = used - 1 WHERE id = $roomid") or die(mysqli_error());
} elseif (isset($_POST['add'])){
$add_query = mysqli_query("UPDATE rooms SET used = used + 1 WHERE id = $roomid") or die(mysqli_error());
}
?>
</form>
</div>
</div>
</div>
<?php }
} else {
echo "0 results";
} ?>
最佳答案
如果您将表单的操作设置为代码的任何名称(例如,“rooms.php”),则移动
if(isset($_POST['remove'])){
$remove_query = mysqli_query("UPDATE rooms SET used = used - 1 WHERE id = $roomid") or die(mysqli_error());
} elseif (isset($_POST['add'])){
$add_query = mysqli_query("UPDATE rooms SET used = used + 1 WHERE id = $roomid") or die(mysqli_error());
}
到顶部,因此它会在您查询表格以填写页面的其余部分之前更新表格,它应该可以工作。现在,您的 PHP 正在 SELECT 查询后更新表格以填充您的页面,因此它似乎没有更新。
我认为更好的方法是实现 AJAX,这样您的表单就可以在不重新加载页面的情况下更新 Used 字段。
关于php - 如何使用条件 PHP 在单击时运行 SQL 查询?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41772729/