SELECT COUNT(`id`)FROM`table` WHERE merk LIKE'%$ searchq%'

时间:2013-12-18 23:25:05

标签: php mysql search

我想算一下当我使用搜索引擎时得到的结果。

这是我的HTML代码:

<form id="header-search" action="car-list.php" method="get">
            <input type="text" name="search"  id="text" placeholder="Zoek hier.."   class="quick-search"  > </form>

Php代码:

     $searchq = $_GET['search'];
     $searchq = str_replace(' ','-',$searchq);     
    $con =  mysql_connect("localhost","root","****");
if (!$con) {
  die('Could not connect: ' . mysql_error());
}

mysql_select_db("register-login", $con);

$result = mysql_query("SELECT COUNT(`car_id`)FROM `adver` WHERE merk LIKE '%$searchq%' OR titel LIKE '%$searchq%' OR model LIKE '%$searchq%'");
$row = mysql_fetch_array($result);
$total = $row[0];



$pages = new Paginator;  
$pages->items_total = $total;
$pages->mid_range = 5;  
$pages->paginate();  

我这样做就知道“$ pages-&gt; items_total = $ total;”为了我的分页。

显示结果代码:

$searchq = htmlspecialchars($searchq); 
$searchq = mysql_real_escape_string($searchq);                  
$photo=mysql_query("SELECT * FROM `adver` WHERE merk LIKE '%$searchq%' OR titel LIKE '%$searchq%' OR model LIKE '%$searchq%' ORDER BY car_id DESC $pages->limit")or die(mysql_error());

while($get_photo=mysql_fetch_array($photo)){ 


?>


                                        <a href="<?php echo 'car-details.php?merk='.$get_photo['merk'] .'&car_id=' .$get_photo['car_id'] .'&titel=' .$get_photo['titel'] ;?>">
                            <img src="<?php  echo $get_photo['path'] ; ?>" style="border:1px solid #021a40;" alt="<?php  echo $get_photo['merk'] ;?>" }/>

Everyyhing工作正常,直到我搜索我的数据库中不存在的东西。所以$ result = 0.然后我得到了一个错误的错误:

您的SQL语法有错误;检查与MySQL服务器版本对应的手册,以便在第1行的“-10,10”附近使用正确的语法

当我将$ result = mysql_query更改为==&gt; (“SELECT COUNT(car_id)FROM adver”); 然后一切正常,请用我的分页号码...因为我算上每一个car_id,无论我在搜索什么...我得到的例子就是3个空页......

我希望有人可以帮我解决这个问题,谢谢

2 个答案:

答案 0 :(得分:1)

您将获得 COUNT(*)的别名,并在以下字段后输入此字段:

$result = mysql_query("SELECT COUNT(*) AS total FROM `adver` WHERE merk LIKE '%$searchq%' OR title LIKE '%$searchq%' OR model LIKE '%$searchq%'") or die(mysql_error());
$row = mysql_fetch_array($result);
$total = $row['total']; //use alias

你有错误的字段名称(我认为): titel 标题

要调试查询,您将在 mysql_query 调用后添加或die(mysql_error())(请参阅我的代码)

答案 1 :(得分:1)

分页总是很痛苦,似乎你指定了-10,10的限制(这是一个负面的开始);可能在$pages->limit中,这似乎是个问题。

在不使用SQL_CALC_FOUND_ROWS时是否存在性能问题?无论使用LIMIT子句,您都可以获得结果总数。