php - 如何使用条件 PHP 在单击时运行 SQL 查询?

标签 php mysql

我正在尝试为旅馆创建房间可用性检查页面,但我遇到了问题。

我有一个数据库,其中有一个名为“rooms”的表,其中列出了具有这些行的所有类型的房间:

  1. 编号 [INT]
  2. 姓名(房间类型)[字符]
  3. capacity(最大容量,不可更改)[INT]
  4. 已使用(已使用的床位数量,我想动态更改此值!)[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/

相关文章:

PHP imagick 检测透明度

php - 从 php 到 flash 的返回变量未定义

php - Codeigniter - 从下拉列表中获取值传递给 Controller

mysql - 如何总结这些也有顺序的分组行

.net - 更新 VB.NET 中的 MySQL 字段

java - 在 Java 中触发异步进程

php - 使用 MySQL 分页查询每组前 N 个

php - SilverStripe 3.1+ 使用 PHP 动态更改重定向器的 URL slug

php - 在没有实体类的情况下使用 native SQL 查询

c++ - 旧版 MySQL 连接器 C++ 使用 sql::ConnectOptionsMap 异常