2017-04-11 133 views
1

我已經搜索過類似的問題,我可以找到類似的問題。然而,似乎沒有人回答我的問題。我對PHP完全陌生,無法找到我的查詢返回FALSE的原因。 我的錯誤: mysqli_num_rows()預計,在第17行中[指南]給定參數1被mysqli_result,布爾MySQLi_query返回布爾值的問題

我的代碼:

<?php 
$con=mysqli_connect("fdb17.biz.nf","XXXX", "XXXX","2337985_searchengine", "3306"); 
$testdb=mysqli_select_db($con,"searchengine"); 
if(isset($_POST['search_query'])){ 
    $search_query=mysqli_real_escape_string($con,htmlentities($_POST['search_query'])); 
    echo "<div class=\"searchText\">Search</div><hr/>"; 
    $search_query_x=explode(" ",$search_query); 
    $query=""; 
    foreach($search_query_x as $search_each){ 
     if($search_query_x) 
      $query="keywords LIKE '%$search_each%'"; 
     else 
      $query.="AND keywords LIKE '%$search_each%'"; 
    } 
    $query="SELECT * FROM search WHERE $query"; 
    $result=mysqli_query($con,$query); 
    $nr=mysqli_num_rows($result); 
    if($nr==0){ 
     echo "Sorry, there are no matching result for <b>$search_query</b><br> 
    1.Try more general words.<br> 
    2.Try different words with similar meaning.<br> 
    3.Please check your spelling.<br>"; 
    } 
    else 
     { 
      echo "$nr results found !<p>"; 
      while($rr=mysqli_fetch_assoc($run)) 
       { 
        $title=$rr['title']; 
        $desc=$rr['desc']; 
        $url=$rr['url']; 
        echo" 
    <div class='width: 400px;'> 
    <div class='title'><a href='$url'><b>$title</b></a></div> 
    <div class='desc'>$desc</div> 
    <div class='url'>$url</div> 
    </div><br> 
    "; 
       } 
     } 
} 
?> 

如果任何人能發現這將是巨大的問題。

更新後的前幾個評論,但仍然得到同樣的問題:

<?php 
$con=mysqli_connect("XXXX","XXXX", "XXXX","XXXX", "XXXX"); 
$testdb=mysqli_select_db($con,"searchengine"); 
if(isset($_POST['search_query'])){ 
$search_query=mysqli_real_escape_string($con,($search_each)); 
echo "<div class=\"searchText\">Search</div><hr/>"; 
$search_query_x=explode(" ",$search_query); 
$query=""; 
foreach($search_query_x as $search_each){ 
if($query == '') 
$query="keywords LIKE %$search_each%"; 
else 
$query="AND keywords LIKE %$search_each%"; 
} 
$query="SELECT * FROM search WHERE $query"; 
$result=mysqli_query($con,$query); 
$nr=mysqli_num_rows($result); 
if($nr==0){ 
echo "Sorry, there are no matching result for <b>$search_query</b><br> 
1.Try more general words.<br> 
2.Try different words with similar meaning.<br> 
3.Please check your spelling.<br>"; 
} 
else 
{ 
echo "$nr results found !<p>"; 
while($rr=mysqli_fetch_assoc($run)) 
{ 
$title=$rr['title']; 
$desc=$rr['desc']; 
$url=$rr['url']; 
echo" 
<div class='width: 400px;'> 
<div class='title'><a href='$url'><b>$title</b></a></div> 
<div class='desc'>$desc</div> 
<div class='url'>$url</div> 
</div><br> 
"; 
} 
} 
} 
?> 
+0

那麼,很可能你通過字符串操作構造的sql查詢不起作用。嘗試轉儲它並手動執行它。怎麼了? – arkascha

+0

我希望那些不是實際的登錄憑證。如果他們是,你最好現在就去改變他們。編輯:已編輯出來,但仍會出現在修訂中。 –

+0

告訴我,DB參數不是真正的! ('登錄憑據',感謝Fred-ii) – OldPadawan

回答

0

感謝您所有的幫助,得到了現在的問題解決。我認爲主要的罪魁禍首是一個區分大小寫的Mysql表格以及你們糾正的一些錯誤。