我使用以下代码在网站中搜索..当查询没有返回结果时,我希望显示消息“找不到结果”。我应该在代码中做什么改变
我的代码:
<?php
error_reporting(E_ALL ^ E_DEPRECATED);
if(isset($_REQUEST["submit"]))
{
$user = $_REQUEST["user"];
mysql_connect("localhost","root","");
mysql_select_db("iata");
$query=mysql_query("SELECT * FROM code WHERE airportcode LIKE '$user'");
$rowcount=mysql_num_rows($query);
?>
<table border="1" align="center">
<tr>
<td>City Name</td>
<td>3 Letter City Code</td>
<td>Airport Name</td>
<td>3 Letter Airport Code</td>
</tr>
<?php
for($i=1;$i<=$rowcount;$i++)
{
$row = mysql_fetch_array($query);
?>
<tr>
<td><?php echo $row["cityname"] ?></td>
<td><?php echo $row["citycode"] ?></td>
<td><?php echo $row["airportname"] ?></td>
<td><?php echo $row["airportcode"] ?></td>
</tr>
<?php
}
}
?>
</table>
<form method="POST">
<input type="text" name="user">
<input type="submit" name="submit" value="Submit">
</form>
答案 0 :(得分:0)
您已使用rowcount。只需检查计数是否等于0,你就会知道你是否有结果。
更重要的是,您正在使用mysql_ *函数。建议使用mysqli_ *函数近十年,它们自PHP5.5起已被弃用,并且自PHP7.0起已被删除。
你应该使用mysqli_ *函数,甚至更好的PDO:
try {
$db = new PDO('mysql:host=localhost;dbname=iata', 'root, '');
$stmt = $db->prepare("SELECT * FROM code WHERE airportcode LIKE ?");
$stmt->execute(array($user));
while ($row = $stmt->fetch()) {
// Your code here
}
$db = null;
} catch (PDOException $e) {
print "Error !: " . $e->getMessage() . "<br/>";
die();
}
请勿使用mysql_ *函数触摸代码,不要编写代码,不要复制代码,不要将代码发送给任何人,不要将代码写入其中。甚至用棍子戳它!这些功能容易受到攻击,并且会使任何依赖它们的应用程序变得易受攻击!
答案 1 :(得分:0)
这样做
if ($rowcount == 0) {
$message = "No Result";
}
现在,您可以在页面的任何位置回显$message
以显示消息。
答案 2 :(得分:-1)
将以下内容添加到您希望显示消息的代码中:
if ($rowcount == 0) {
echo 'result set is = 0';
}