2012-11-28 59 views
0

我用下面的PHP代碼發送MYSQL DATABSE搜索AJAX請求的結果...PHP輸出包含兩個空格,即使沒有結果發現

$query = $db->query("SELECT name FROM search WHERE qurl = '" . $queryString . "'"); 


if($query) { 

    while ($result = $query ->fetch_object()) {    
      echo $result->name; 
    } 
} else { echo 'no results found'; } 

,但我從來沒有得到沒有結果發現消息,甚至有沒有結果,我得到,如果沒有結果,two empty spaces - 我發現在AJAX頁面使用alert(data.length),結果是2,這意味着當沒有結果時,php輸出有兩個空白空間...

但是當它有結果它工作正常...

任何方式刪除這兩個空格或爲什麼我沒有得到沒有結果發現消息?

+0

我的確希望'$ queryString'被正確地消毒,因爲如果它不是,你就錯過了整個觀點,並且應該使用預處理語句。 –

回答

3
if ($query->num_rows > 0) { 
    while ... 
} else { 
    echo 'no results found'; 
} 

$db->query()僅如果有執行查詢返回錯誤false。空的結果集不是錯誤。

+0

是的,我以前試過,但我得到這個錯誤.. 致命錯誤:調用未定義的方法mysqli_result :: num_rows()在第18行的C:\ wamp \ www \ 7 \ load.php中 –

+0

已更正。這是一種財產,而不是一種方法。 – Barmar

0

你正在評估的是如果聲明是有效的......它是什麼,並將始終返回true。爲了評估返回的結果,你需要評估$查詢 - > NUM_ROWS

+0

我嘗試使用num_row,但我得到一個錯誤..錯誤是致命錯誤:調用未定義的方法mysqli_result :: num_rows()在第18行C:\ wamp \ www \ 7 \ load.php –

+0

上面的答案有括號。 ..確保你沒有這些。 http://php.net/manual/en/mysqli-result.num-rows.php –

相關問題