2011-07-25 159 views
0

我想使用phpmysql進行全文搜索,但它在mysql_num_rows中顯示錯誤,你能告訴我什麼是error.i創建的全文索引和更改表引擎也。麻煩全文搜索腳本在mysql

$search=mysql_real_escape_string($_POST['name']); 
    $sql="SELECT * FROM article WHERE MATCH(title, comment) AGAINST ('.$search.')"; 
    $query = mysql_query($sql); 

//Check if any results were returned 

if(mysql_num_rows($query)>0){ 

//If so, cycle through the results 

while($link = mysql_fetch_array($query)){ 

    echo("<big><big><a href=show.php?id=$link[id] class=y>$link[title]</a></big></big> <br>"); 
    echo('<big>' . $link['comment'] . '</big><br><br>'); 


//End the while 

}} 
+0

你能複製並粘貼你收到的錯誤嗎? – Zomxilla

+0

警告:mysql_num_rows()期望參數1是資源,在第61行的C:\ wamp \ www \ Include \ searchphp.php中給出的布爾值,這是它顯示的錯誤 – test

+0

是否需要$ search引號?使用雙引號通常意味着你不需要這些。我習慣於使用像Codeigniter這樣的框架或我自己的類,所以我不能100%確定會影響結果。 – Zomxilla

回答

0

右後

$query = mysql_query($sql); 

添加以下

if (!$query) echo "<p>".mysql_errno().": ".mysql_error()."</p>"; 

它會告訴你的錯誤號和錯誤消息的文本。

如果你還是不讀錯誤消息後解決它,您的查詢應該讀

$sql="SELECT * FROM article WHERE MATCH(title, comment) AGAINST ('$search')"; 

但不

$sql="SELECT * FROM article WHERE MATCH(title, comment) AGAINST ('.$search.')"; 

注意點。

+0

警告:mysql_num_rows()期望參數1是資源,布爾在C中給出:\ wamp \ www \ Include \ searchphp.php在第61行,這是第一個顯示的錯誤。添加腳本後顯示此錯誤。注意:Undefined variable:鏈接在C:\ wamp \ www \ Include \ searchphp.php on line 60 警告:mysql_errno()期望參數1爲資源,在第60行的C:\ wamp \ www \ Include \ searchphp.php中給出的爲null – test

+0

請再次檢查。你應該完全按照我告訴過你的方式添加該行。 – sanmai

+0

對不起sanmai我發現了錯誤。我創建了3個字段的全文,但我只添加了兩個..任何方式非常感謝您的幫助 – test