如果数组为空,PHP显示“无结果”

时间:2013-05-18 11:15:10

标签: php search

我正在尝试为我的网站制作搜索脚本。到目前为止一切顺利,但如果没有搜索结果,我想显示“没有结果显示”。我试过这个:

<?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>";
    }
}

但这也不起作用。任何有关此问题的帮助表示赞赏。

2 个答案:

答案 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);

请注意,mysql_*函数已弃用。请考虑更新您的代码以使用mysqli_*PDO