【问题标题】:SQL search query returns no resultsSQL 搜索查询不返回任何结果
【发布时间】:2016-05-24 21:25:55
【问题描述】:

我有三个页面 search.php 处理 sql 查询,index.php 具有它自己的搜索表单和 connect.php 具有数据库连接信息。我正在关注此视频中的信息 https://www.youtube.com/watch?v=gf32KXTP0C4

首先我确保查询可以在 phpMyAdmim 中工作 我用 a 作为测试。如您所见,它返回 117 个结果

以关键字为名称的表单

<form action="search.php" method="get">
        <label>
            Search
            <input type="text" name="keywords" autocomplete="off">

        </label>

        <input type="submit" value="Search">

Search.php如下,它应该根据关键字搜索表格中输入的内容,回显结果数量,然后将它们列出

<?php

require_once 'connect.php';

if(isset($_GET['keywords'])) {

     $keywords = $db->escape_string($_GET['keywords']);

     $query = $db->query("
        SELECT charactor_name, vault_number, history
        FROM charactor 
        WHERE charactor_name like '%{keywords}%'
     ");
     ?>

     <div class="result-count">
        Found <?php echo $query->num_rows; ?> results
     </div>


     <?php

     if($query->num_rows) {
         while($r = $query->fetch_object()) {
             ?>
             <div class="result">
             <a href="#"><?php echo $r->charactor_name; ?></a>
             </div>
             <?php


         }


     }

}

connect.php如下 我使用http://php.net/manual/en/mysqli.construct.php 中的代码从 if 语句开始测试数据库连接,以确保连接正常工作。一旦我知道它有效,我就将其注释掉了

<?php 

$db = new mysqli('localhost', 'root', '', 'csc8417');
/*
if (mysqli_connect_error()) {
    die('Connect Error (' . mysqli_connect_errno() . ') '
            . mysqli_connect_error());
}

echo 'Success... ' . $db->host_info . "\n";

$db->close();
?>*/

无论我运行什么查询,我总是得到 0 个结果,如此处所示

它应该返回

【问题讨论】:

    标签: php mysql


    【解决方案1】:

    请在此处查看:

     $query = $db->query("
        SELECT charactor_name, vault_number, history
        FROM charactor 
        WHERE charactor_name like '%{keywords}%'
     ");
    

    关键字应该是 $keywords

    【讨论】:

    • 视频中给出了有趣的内容,您可以在这里看到他们没有 $ i.imgur.com/KULwZfP.png
    • 我无法查看视频,但在您发送的图片中 (imgur.com/KULwZfP) 他们使用了 $keywords
    • 你是对的,他们这样做了,我错过了。谢谢。
    【解决方案2】:

    试试这个?

    if( $query->num_rows() ) { 
    

    使用$query-&gt;num_rows() 代替$query-&gt;num_rows

    【讨论】:

      猜你喜欢
      • 2015-02-17
      • 1970-01-01
      • 2021-02-10
      • 1970-01-01
      • 2019-06-19
      • 2014-03-13
      • 2021-12-02
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多