[英]Getting No Results For Search In php And mysqli
我不明白为什么我每次运行else代码都不会在此代码中得到任何结果。
<?php
if(isset($_POST['search'])){
$search = mysqli_real_escape_string($connection, $_POST['user_query']);
$sql = "SELECT * FROM search WHERE search_title LIKE '%user_query%' OR search_desc LIKE '%user_query%' OR search_key LIKE '%user_query%' ";
$run = mysqli_query($connection, $sql);
$queryResult = mysqli_num_rows($run);
if($queryResult > 0){
while($rel_rows = mysqli_fetch_assoc($queryResult)){
echo "<div id='post'>
<a href='#'><img src='$rel_rows[search_img]'></a>
<a href='#'><h4 class='post_name'>$rel_rows[search_title]</h4></a>
<p class='post_info'> $rel_rows[search_desc]</p>
</div>";
}
}
else{
echo "There are no results for your search";
}
}
?>
您传递了错误的搜索字符串;
改成:
$sql = "SELECT * FROM search WHERE search_title LIKE '%$search%' OR search_desc LIKE '%$search%' OR search_key LIKE '%$search%' ";
您在mysqli_fetch_assoc(..)中传递了错误的变量作为参数
改成:
mysqli_fetch_assoc($run)
尝试这个
<?php
if(isset($_POST['search'])){
$search = mysqli_real_escape_string($connection, $_POST['user_query']);
$user_query=$search;
//Added this line and replace user_query to $user_query in SQL query statement
$sql = "SELECT * FROM search WHERE search_title LIKE '%$user_query%' OR search_desc LIKE '%$user_query%' OR search_key LIKE '%$user_query%' ";
$run = mysqli_query($connection, $sql);
$queryResult = mysqli_num_rows($run);
if($queryResult > 0){
while($rel_rows = mysqli_fetch_assoc($run)){
echo "<div id='post'>
<a href='#'><img src='$rel_rows[search_img]'></a>
<a href='#'><h4 class='post_name'>$rel_rows[search_title]</h4></a>
<p class='post_info'> $rel_rows[search_desc]</p>
</div>";
}
}
else{
echo "There are no results for your search";
}
}
?>
希望这会有所帮助!
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.