【问题标题】:Returning 5 results in PHP MySQL search在 PHP MySQL 搜索中返回 5 个结果
【发布时间】:2011-09-22 17:15:24
【问题描述】:

我只想使用我的 PHP 搜索脚本从我的数据库中显示 5 个结果。我该怎么做?

我的 PHP 代码是:

<?php

mysql_connect("localhost","username","password");
mysql_select_db("database");

if(!empty($_GET['q'])){
   $query= mysql_real_escape_string(trim($_GET['q']));
}

$searchSQL = "SELECT * FROM links WHERE `title` LIKE '%{$query}%'";
$searchResult = mysql_query($searchSQL);

while ($row=mysql_fetch_assoc($searchResult)){
    $results[] = "<div class='webresult'><div class='title'><a href='{$row['url']}'>{$row['title']}</a></div><div class='desc'>{$row['description']}</div><div class='url'>{$row['url']}</div></div>";
}

echo implode($results); 
?>

【问题讨论】:

    标签: php mysql html sql


    【解决方案1】:
    <?php
    
    $database=mysql_connect("localhost","username","password");
    mysql_select_db("database");
    
    if(!empty($_GET['q'])){
        $query= mysql_real_escape_string(trim($_GET['q']));
        $searchSQL = "SELECT * FROM links WHERE `title` LIKE '%{$query}%' LIMIT 0,5";
        //                                                                .^.
        //                                        add a limit clause here. |
        $searchResult = mysql_query($searchSQL);
    
        while ($row=mysql_fetch_assoc($searchResult)){
            $results[] = "<div class='webresult'><div class='title'><a href='{$row['url']}'>{$row['title']}</a></div><div class='desc'>{$row['description']}</div><div class='url'>{$row['url']}</div></div>";
        }
    
        echo implode($results); 
    }
    ?>
    
    1. 解决方案:在查询中添加LIMIT 子句,以限制返回结果的数量。

    2. 建议:将数据库查询代码放在 if 子句中,因为这样可以避免 GLOBAL 变量类型的麻烦。

    【讨论】:

    【解决方案2】:

    如果您有 $searchSQL = "SELECT * FROM links WHEREtitleLIKE '%{$query}%'";,您可以将其更改为使用 LIMIT 子句,如下所示:

    $searchSQL = "SELECT * FROM links WHERE `title` LIKE '%{$query}%' LIMIT 5";
    

    有关使用 LIMIT 子句的更多信息,请尝试以下链接:

    MySQL Reference guide

    【讨论】:

      【解决方案3】:
      SELECT * FROM links WHERE `title` LIKE '%{$query}%' LIMIT 0,5"
      

      应该显示 5 个结果。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-09-28
        • 1970-01-01
        相关资源
        最近更新 更多