2013-12-16 47 views
-2

請爲什麼我收到此錯誤。當我嘗試進行新的搜索時,那是我得到的錯誤。下面是我的代碼。我做錯了什麼?警告:mysql_num_rows()期望參數1是資源,字符串中給出的字符串在/index.php 228行

<?php 
    define('DB_HOST','localhost'); 
    define('DB_USER','user'); 
    define('DB_PASS','pass'); 
    define('DB_NAME','dbname'); 

    $conn = mysql_connect(DB_HOST,DB_USER,DB_PASS) or die(mysql_error()); 
    mysql_select_db(dbname) or die(mysql_error()); 
    $output = ''; 
    if(isset($_POST['search'])) { 
     $searchq = $_POST['search']; 
     $searchq = preg_replace("#[^0-9a-z]#i", "",$searchq); 
     $query = "SELECT * FROM track WHERE keywords LIKE '%$searchq%'"; 
     $count = mysql_num_rows($query); 

     if($count == 0) { 
      $output = 'There was no search results!'; 
     } 
     else { 
      while($row = mysql_fetch_array($query)) { 
      $consignee = $row['consignee']; 
      $desti = $row['desti']; 
      $date = $row['date']; 

      $output = "<table class=\"zebra\"><thead><tr><th>Consignee</th><th>Destinations/Remarks</th><th>Date</th></tr></thead><tfoot><tr><td>$consignee</td><td>$desti</td><td>$date</td></tr></tfoot></table>"; 

     } 
    } 


    } 
?> 
+2

你必須運行查詢第一 – Musa

+2

你看了這個錯誤嗎?提到的函數不需要字符串(就像你給它的)。查看該功能的手冊。 – Nanne

+0

謝謝穆薩我應該運行它。 – KofYeb

回答

0

你需要的東西,如:

$query = mysql_query("SELECT * FROM track WHERE keywords LIKE '%$searchq%'"); 
$count = mysql_num_rows($query); 

編輯:您還需要看看How can I prevent SQL injection in PHP?

+0

它的工作,但我的if($ count == 0){ $輸出='沒有搜索結果!'; }不工作,當我點擊提交按鈕什麼都沒有發生,它只是給了我一個分貝的結果。 – KofYeb

+0

它不工作,因爲它總是返回結果?也許你需要改進你的查詢。 – MillaresRoo

+0

我該怎麼做?請! – KofYeb

相關問題