2011-06-25 26 views

回答

2
<?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. 建议:将您的数据库查询代码,如果子句中,因为这样你将避免GLOBAL变量样的烦恼。使用LIMIT子句

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

    欲了解更多信息,请尝试以下链接:

+1

只是为了澄清。改变是增加“限制0,5”。你可以在这里找到更多关于限制选择器的信息http://dev.mysql.com/doc/refman/5.0/en/limit-optimization.html – Swift

0

,你必须$searchSQL = "SELECT * FROM links WHERE标题LIKE '%{$query}%'";你可以改变这种使用一个LIMIT子句,像这样

MySQL Reference guide

0
SELECT * FROM links WHERE `title` LIKE '%{$query}%' LIMIT 0,5" 

that should dis播放5结果。