2013-12-18 47 views
0

我想我算多少結果獲得當我使用我的搜索引擎..

這裏是我的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-> items_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工作正常,直到當我尋找的東西並不在我的DATABSE存在。所以$ result = 0.然後我得到了錯誤的結果:

你的SQL語法錯誤;檢查與您的MySQL服務器版本對應的手冊,在第一行'-10,10'附近使用正確的語法

當我將$ result = mysql_query更改爲==>(「SELECT COUNT(car_id)FROM adver「); 然後,一切工作正常免除我的分頁號碼...因爲我計算每一個car_id,無論我正在尋找..我得到檢查3空頁..

我希望有人可以幫助我這個問題,謝謝

+0

One addition tipp:使用mysqli而不是mysql函數並讀一些關於準備好的語句! – Gerifield

回答

1

分頁是總是與限制的痛苦,似乎您指定的限制爲-10,10(所以負面啓動);大概在$pages->limit,這似乎是問題。

在不使用SQL_CALC_FOUND_ROWS時是否有任何性能考慮?無論使用LIMIT子句,您都可以獲得結果的總數。

+0

我應該看一下$ pages-> limit,問題應該在這附近的某處!謝謝!讓我知道如果我發現了什麼 – user3052155

+0

嗨,問題在於你說的$ pages->限制。 我創建了一個simpel if語句來檢查我是否有零結果。 像這樣: 如果($總> 0){ \t \t \t $相片=請求mysql_query(「SELECT * FROM'adver' WHERE默克LIKE '%$ SEARCHQ%' OR性標題LIKE「%$ SEARCHQ% '或者模型LIKE'%$ searchq%'ORDER BY car_id DESC $ pages-> limit「)或死(mysql_error()); 如果(mysql_num_rows($照片)> 0){ 而($ get_photo = mysql_fetch_assoc($照片)){{ // 我環路 }} 其他 { 回聲( 「沒有找到記錄」 ); }! – user3052155

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_error())的mysql_query後調用(請參閱我的代碼)

+0

嗨,謝謝你的迴應,但我仍然得到同樣的錯誤。 順便提一下,字段名稱是'titel'(用荷蘭語表示) – user3052155

+0

您可以嘗試刪除COUNT(*)和總計 – Santhosh

+0

之間的AS關鍵字,但沒有結果。 – user3052155

相關問題