【问题标题】:Display "x results found" or "no results found" when returning MySQL Query results返回 MySQL Query 结果时显示“x results found”或“no results found”
【发布时间】:2013-11-07 16:34:44
【问题描述】:

搜索功能就像一个魅力,但我不知道如何添加某些“附加”到它。当有结果要显示时,我也想说:

"Your search returned x results." 

接着是结果。

当没有结果显示时,我想说:

"Your search returned no results.  Please try again."

当用户没有在搜索表单中输入任何内容时,我想说:

"You did not enter a search term."

我是 PHP 初学者,我不知道如何在我当前的代码中实现它;我尝试了很多不同的方法,但它要么给我错误,要么在没有结果时返回一个空白页。

任何方向或帮助都会很棒。谢谢。

这是我当前的代码:

<?php

//STEP 1 Connect To Database
$connect = mysql_connect("localhost","tarb89_admin","leccums");
if (!$connect)
{
    die("MySQL could not connect!");
}

$DB = mysql_select_db('tarb89_characters');

if(!$DB)
{
    die("MySQL could not select Database!");
}

//STEP 2 Check Valid Information
if(isset($_GET['search']))
    {
    //STEP 3 Declair Variables
    $Search = $_GET['search'];
    $result = mysql_query("SELECT * FROM characters WHERE name LIKE '%$Search%' ");

    while($row = mysql_fetch_assoc($result))
    {
        $name        = $row['name'];
        $id          = $row['id'];
        $breed       = $row['breed'];
        $gender      = $row['gender'];
        $genetics    = $row['genetics'];
        $profile     = $row['profile'];
        $player      = $row['player'];
        $color       = $row['color'];
        $markings    = $row['markings'];
        $traits      = $row['traits'];
        $defects     = $row['defects'];
        $extras      = $row['extras'];

        echo "  <h3>$name</h3>
        <table width='700px' cellpadding='5' cellspacing='0'>
        <tr>
        <td><p>
        <b>ID Number:  </b>$id<br>
        <b>Breed:  </b>$breed<br>
        <b>Gender:  </b>$gender<br>
        <b>Genetics: </b>$genetics<br>
        <b>Profile:</b>  <a href='$profile'>$profile</a><br>
        <b>Player:</b>  $player</p></td>
        <td><p>        
        <b>Color:</b>  $color<br>
        <b>Markings:</b>  $markings<br>
        <b>Traits:</b>  $traits<br>
        <b>Defects:</b>  $defects<br>
        <b>Extras:</b>  $extras</p></td>
        </table>";

    }
}
?>

【问题讨论】:

  • 从 PHP 中分离 HTML,使用 PDO,用 0 初始化一个变量,然后在循环中递增它,然后在最后 if 0 message_1:No results else message_2:You have...

标签: php mysql database search


【解决方案1】:

使用mysql_num_rows()返回行数

if($search!="") {
    // Your Query

    $num = mysql_num_rows($result);
    if($num >= 1)
    {
        echo "Your search returned $num results";
        // your code
    }
    else
    {
        echo "Your search returned no results. Please try again";
    }
} else {
    echo "You did not enter a search term";
}


您的代码

if(isset($_GET['search']))
{
    //STEP 3 Declair Variables
    $Search = $_GET['search'];
    $result = mysql_query("SELECT * FROM characters WHERE name LIKE '%$Search%' ");

    $num = mysql_num_rows($result);

    if($num >= 1)
    {
    echo "Your search returned $num results";
    while($row = mysql_fetch_assoc($result))
    {
        $name        = $row['name'];
        $id          = $row['id'];
        $breed       = $row['breed'];
        $gender      = $row['gender'];
        $genetics    = $row['genetics'];
        $profile     = $row['profile'];
        $player      = $row['player'];
        $color       = $row['color'];
        $markings    = $row['markings'];
        $traits      = $row['traits'];
        $defects     = $row['defects'];
        $extras      = $row['extras'];

        echo "  <h3>$name</h3>
        <table width='700px' cellpadding='5' cellspacing='0'>
        <tr>
        <td><p>
        <b>ID Number:  </b>$id<br>
        <b>Breed:  </b>$breed<br>
        <b>Gender:  </b>$gender<br>
        <b>Genetics: </b>$genetics<br>
        <b>Profile:</b>  <a href='$profile'>$profile</a><br>
        <b>Player:</b>  $player</p></td>
        <td><p>        
        <b>Color:</b>  $color<br>
        <b>Markings:</b>  $markings<br>
        <b>Traits:</b>  $traits<br>
        <b>Defects:</b>  $defects<br>
        <b>Extras:</b>  $extras</p></td>
        </table>";
    }
    }
    else
    {
        echo "Your search returned no results. Please try again";
    }
} else {
        echo "You did not enter a search term";
}


注意: mysql_* 函数已弃用,请尽快继续 mysqli_* 函数

【讨论】:

  • 我将把它放在我当前代码的什么位置?我是替换它的一部分还是只是在某个地方添加它?我很抱歉这些愚蠢的问题。我对此很陌生。谢谢!
  • 我在第 64 行收到“解析错误:语法错误,/home3/tarb89/public_html/aususrpg.net/charbase/search.php 中的意外 T_ELSE。”
  • 当没有结果显示时,它工作正常。当没有搜索词时,它会显示数据库中的所有数据。当您搜索数据库中列出的内容时,它会显示“您的搜索未返回结果,请重试”消息。
  • @user2965612 现在再次检查
  • 除了“您没有输入搜索词”部分之外的所有内容都运行良好。 PS:非常感谢您的帮助。非常感谢!
猜你喜欢
  • 2022-11-11
  • 2015-04-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-05-29
  • 2019-09-21
  • 2014-08-25
  • 1970-01-01
相关资源
最近更新 更多