2017-04-11 127 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表格以及你们纠正的一些错误。