0

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

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

但这也没有用。对此问题的任何帮助表示赞赏。

4

2 回答 2

3

尝试这个:

if(! $resultsarray) {
    echo "<p>There are no results to display.</p>";
}
于 2013-05-18T11:16:53.453 回答
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

于 2013-05-18T11:17:38.430 回答