【问题标题】:Getting No Results For Search In php And mysqli在 php 和 mysqli 中没有搜索结果
【发布时间】:2018-11-06 15:46:54
【问题描述】:

我不明白为什么我在这段代码中没有得到任何结果,每次我运行它时,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";
        }

            }
         ?>

【问题讨论】:

  • user_query 未定义。使用全文索引会更好。您还应该参数化查询。
  • 它实际上是在你的字符串中搜索文本user_query,因为它是硬编码的。

标签: php search mysqli


【解决方案1】:

您传递了错误的搜索字符串;

改为:

$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)

【讨论】:

  • 非常感谢!!
【解决方案2】:

试试这个

  <?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";
            }

                }
             ?>

希望这会有所帮助!

【讨论】:

  • 对您所做的事情以及它将如何解决 OP 的问题进行一些解释会很有用。
猜你喜欢
  • 1970-01-01
  • 2016-12-05
  • 1970-01-01
  • 1970-01-01
  • 2010-10-28
  • 1970-01-01
  • 2017-04-02
  • 1970-01-01
相关资源
最近更新 更多