我的第一个问题,如果查询返回一个空集,那么基于该操作执行操作的最佳方法是什么?比如只是打印一条消息这么说?我现在设置它的方式是,如果返回一个空集,则不显示任何内容。
我试过这样的事情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>
很抱歉将两个问题合二为一。看起来像一个好主意,而不是两个单独的线程。
答案 0 :(得分:1)
回答你的第二个问题:
我将你的任务分成2部分。服务器端(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>";
}
}
?>