Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/228.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP搜索建议_Php_Jquery_Mysql_Html - Fatal编程技术网

PHP搜索建议

PHP搜索建议,php,jquery,mysql,html,Php,Jquery,Mysql,Html,我有一个PHP脚本,它与jQuery一起提供搜索建议。它从MySQL数据库中提取结果。但是,我只希望用户键入的字母一次显示5个结果,但似乎所有结果都会显示出来。为什么会这样 我的代码是: <p id="searchresults"><?php $db=new mysqli('localhost','username','password','database'); if(isset($_POST['queryString'])){ $queryString=$db->

我有一个PHP脚本,它与jQuery一起提供搜索建议。它从MySQL数据库中提取结果。但是,我只希望用户键入的字母一次显示5个结果,但似乎所有结果都会显示出来。为什么会这样

我的代码是:

<p id="searchresults"><?php

$db=new mysqli('localhost','username','password','database');

if(isset($_POST['queryString'])){
$queryString=$db->real_escape_string($_POST['queryString']);
            if(strlen($queryString)>0){
                $query = $db->query("SELECT * FROM search s WHERE name LIKE '%" . $queryString . "%'");
                if($query){
                    while ($result = $query ->fetch_object()){
                        echo '<a href="/search/'.$result->name.'/1/">';                     
                        $name=$result->name;            
                        echo ''.$name.'';
                    }
                }
            }
        }
?></p>

更改

“从名称类似“%”的搜索中选择*$质询。“%”

若要
,请从名为“%”的搜索中选择*$质询。“%”限制5“

如果要将其限制为5个结果。

更改
“从名称为“%”的搜索中选择*$质询。“%”

若要
,请从名为“%”的搜索中选择*$质询。“%”限制5“


如果要将其限制为5个结果。

您需要在页面中添加分页代码:

下面是示例代码:

<?php 
 // Connects to your Database 
 mysql_connect("your.hostaddress.com", "username", "password") or die(mysql_error()); 
 mysql_select_db("address") or die(mysql_error()); 
 //This checks to see if there is a page number. If not, it will set it to page 1 
 if (!(isset($pagenum)))  
 { 
 $pagenum = 1; 
 } 
 //Here we count the number of results 
 //Edit $data to be your query 
 $data = mysql_query("SELECT * FROM topsites") or die(mysql_error()); 
 $rows = mysql_num_rows($data); 
 //This is the number of results displayed per page 
 $page_rows = 4; 
 //This tells us the page number of our last page 
 $last = ceil($rows/$page_rows); 
 //this makes sure the page number isn't below one, or more than our maximum pages 
 if ($pagenum < 1) 
 { 
 $pagenum = 1;
 } 
 elseif ($pagenum > $last) 
 { 
 $pagenum = $last; 
 } 
 //This sets the range to display in our query 
 $max = 'limit ' .($pagenum - 1) * $page_rows .',' .$page_rows; 
 //This is your query again, the same one... the only difference is we add $max into it 
 $data_p = mysql_query("SELECT * FROM topsites $max") or die(mysql_error()); 
 //This is where you display your query results
 while($info = mysql_fetch_array( $data_p )) 
 { 
 Print $info['Name']; 
 echo "<br>";
 }
 echo "<p>";
 // This shows the user what page they are on, and the total number of pages
 echo " --Page $pagenum of $last-- <p>";
 // First we check if we are on page one. If we are then we don't need a link to the previous page or the first page so we do nothing. If we aren't then we generate links to the first page, and to the previous page.
 if ($pagenum == 1) 
 {
 } 
 else 
 {
 echo " <a href='{$_SERVER['PHP_SELF']}?pagenum=1'> <<-First</a> ";
 echo " ";
 $previous = $pagenum-1;
 echo " <a href='{$_SERVER['PHP_SELF']}?pagenum=$previous'> <-Previous</a> ";
 } 
 //just a space
 echo " -- ";
 //This does the same as above, only checking if we are on the last page, and then generating the Next and Last links    
 if ($pagenum == $last)
 { 
 }
 else {
 $next = $pagenum+1;
 echo " <a href='{$_SERVER['PHP_SELF']}?pagenum=$next'>Next -></a> ";
 echo " ";
 echo " <a href='{$_SERVER['PHP_SELF']}?pagenum=$last'>Last ->></a> ";
 }
 ?> 

您需要向页面添加分页代码:

下面是示例代码:

<?php 
 // Connects to your Database 
 mysql_connect("your.hostaddress.com", "username", "password") or die(mysql_error()); 
 mysql_select_db("address") or die(mysql_error()); 
 //This checks to see if there is a page number. If not, it will set it to page 1 
 if (!(isset($pagenum)))  
 { 
 $pagenum = 1; 
 } 
 //Here we count the number of results 
 //Edit $data to be your query 
 $data = mysql_query("SELECT * FROM topsites") or die(mysql_error()); 
 $rows = mysql_num_rows($data); 
 //This is the number of results displayed per page 
 $page_rows = 4; 
 //This tells us the page number of our last page 
 $last = ceil($rows/$page_rows); 
 //this makes sure the page number isn't below one, or more than our maximum pages 
 if ($pagenum < 1) 
 { 
 $pagenum = 1;
 } 
 elseif ($pagenum > $last) 
 { 
 $pagenum = $last; 
 } 
 //This sets the range to display in our query 
 $max = 'limit ' .($pagenum - 1) * $page_rows .',' .$page_rows; 
 //This is your query again, the same one... the only difference is we add $max into it 
 $data_p = mysql_query("SELECT * FROM topsites $max") or die(mysql_error()); 
 //This is where you display your query results
 while($info = mysql_fetch_array( $data_p )) 
 { 
 Print $info['Name']; 
 echo "<br>";
 }
 echo "<p>";
 // This shows the user what page they are on, and the total number of pages
 echo " --Page $pagenum of $last-- <p>";
 // First we check if we are on page one. If we are then we don't need a link to the previous page or the first page so we do nothing. If we aren't then we generate links to the first page, and to the previous page.
 if ($pagenum == 1) 
 {
 } 
 else 
 {
 echo " <a href='{$_SERVER['PHP_SELF']}?pagenum=1'> <<-First</a> ";
 echo " ";
 $previous = $pagenum-1;
 echo " <a href='{$_SERVER['PHP_SELF']}?pagenum=$previous'> <-Previous</a> ";
 } 
 //just a space
 echo " -- ";
 //This does the same as above, only checking if we are on the last page, and then generating the Next and Last links    
 if ($pagenum == $last)
 { 
 }
 else {
 $next = $pagenum+1;
 echo " <a href='{$_SERVER['PHP_SELF']}?pagenum=$next'>Next -></a> ";
 echo " ";
 echo " <a href='{$_SERVER['PHP_SELF']}?pagenum=$last'>Last ->></a> ";
 }
 ?> 

这是
real\u escape\u string
真的SQL注入安全吗?@Uwe:
real\u escape\u string
提供SQL注入安全。所以,是的。(虽然PDO更好。)那
real\u escape\u string
真的是SQL注入安全吗?@Uwe:
real\u escape\u string
提供SQL注入安全。所以,是的。(虽然PDO更好。)