我想在查询没有返回结果时显示消息“找不到结果”

时间:2017-08-01 15:41:49

标签: php

我使用以下代码在网站中搜索..当查询没有返回结果时,我希望显示消息“找不到结果”。我应该在代码中做什么改变

我的代码:

<?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>

3 个答案:

答案 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';
}