我正在尝试为我的网站制作搜索脚本。到目前为止一切顺利,但如果没有搜索结果,我想显示“没有结果显示”。我试过这个:
<?php
while($resultsarray(mysql_fetch_assoc($searchresult))//$searchresult is the result of my MySQL query
{
if($_GET['options']=='user') {
echo "<a href = 'userinfo.php?id=".$resultsarray['usernum']."'>".$resultsarray['username']."</a>";
}
else if($_GET['options']=='topics') {
echo "<a href = 'display_post.php?id=".$resultsarray['id']."'>".$resultsarray['subject']."</a>";
echo "<p>".$resultsarray['content']."</p>";
}
}
if(empty($resultsarray)) {
echo "<p>There are no results to display.</p>";
}
但即使有结果,也会始终显示消息。我也试过这个:
<?php
$resultsarray = mysql_fetch_assoc($searchresult);
if(empty($resultsarray)) {
echo "<p>There are no results to display.</p>";
}
while($resultsarray = mysql_fetch_assoc($searchresult))//$searchresult is the result of my MySQL query
{
if($_GET['options']=='user') {
echo "<a href = 'userinfo.php?id=".$resultsarray['usernum']."'>".$resultsarray['username']."</a>";
}
else if($_GET['options']=='topics') {
echo "<a href = 'display_post.php?id=".$resultsarray['id']."'>".$resultsarray['subject']."</a>";
echo "<p>".$resultsarray['content']."</p>";
}
}
但这也不起作用。任何有关此问题的帮助表示赞赏。
答案 0 :(得分:3)
试试这个:
if(! $resultsarray) {
echo "<p>There are no results to display.</p>";
}
答案 1 :(得分:1)
您可以使用mysql_num_rows()
来确定返回的结果数量:
if ( !mysql_num_rows($searchresult) ) {
echo "<p>There are no results to display.</p>";
}
在您当前的代码中,您丢失了第一个结果行,因为您正在调用mysql_fetch_assoc()
一次并丢弃结果。使用上述方法,您可以消除导致您丢失一个结果的行:
$resultsarray = mysql_fetch_assoc($searchresult);