我的第一个问题是,如果查询返回一个空集,基于此执行操作的最佳方法是什么?如只是打印一条消息这样吗?我现在设置的方式是,如果返回一个空集,则不显示任何内容。
我尝试了类似if (mysql_num_rows($sql)==0) { echo "None"; }这样的方法,但这似乎没有用。我尝试将其放在foreach之后和之前。

$own = $_POST['flight'];flight来自下拉列表)

<p align="center">List of passengers on that flight: <br>
        <?php
            if ($_SERVER['REQUEST_METHOD'] == POST) {
                $own = $_POST['flight'];
                $sql = "SELECT firstName, lastName FROM passenger, flight, manifest WHERE flight.flightnum =
                manifest.flightnum AND manifest.passnum = passenger.passnum AND flight.flightnum = '".$own."'";

                foreach($connection->query($sql) as $row ) {
                    echo $row['firstName']. " ". $row['lastName'];
                    echo '<br>';
                }
            }
?>
</p>


接下来,我对如何制作一个动作触发按钮感到困惑。单击按钮后,我想显示此内容(下方)。
我试着制作一个像这样的按钮(工作正常),<button onclick="myFunction()">Click me</button> <p id="demo"></p>,但是我不知道如何为它编写脚本。

<p align="center">List of all passengers: <br>
    <?php
        $sqlRequest = "SELECT firstName, lastName FROM passenger ORDER BY lastName";
        $result = $connection->query($sqlRequest); //save result

        if($result->num_rows > 0) {
            while($row = $result->fetch_assoc()) {
                echo $row["firstName"]. " ". $row["lastName"]. "<br>";
            }
        }
    ?>
</p>


很抱歉将两个问题合而为一。似乎是一个好主意,而不是创建两个单独的线程。

最佳答案

回答第二个问题:

我将您的任务分为两部分。服务器端(getlist.php)和客户端(getlist.html)。我们将在客户端脚本中使用jquery。

getlist.html:

<script src="https://code.jquery.com/jquery-3.2.1.min.js"></script>
<p align="center">List of all passengers: <br>
<span id="span-list"></span>
</p>
<button id="btn-update">Update List</button>
<script>
  $("#btn-update").click(function(){
    $.ajax({
     type: "GET",
     url: "getlist.php",
     success: function(msg){
       $("#span-list").html(msg);
     }
    })
  })
</script>


getlist.php:

<?php
    $sqlRequest = "SELECT firstName, lastName FROM passenger ORDER BY lastName";
    $result = $connection->query($sqlRequest); //save result

    if($result->num_rows > 0) {
        while($row = $result->fetch_assoc()) {
            echo $row["firstName"]. " ". $row["lastName"]. "<br>";
        }
    }
?>

10-06 06:24