【问题标题】:LIKE query in sql is not working [closed]sql中的LIKE查询不起作用[关闭]
【发布时间】:2015-02-09 22:59:47
【问题描述】:

我有一个充满值的数据库。我想根据标题查询并获取某些值。我正在使用 sql 中的 LIKE 查询来完成此操作。

由于某种原因,当我在搜索栏中查询“新”时,没有出现任何结果。数据库中有一个标题为:New Item

HTML:

       <form method="get" action="">
            <input type="text" name="search" id="search" value="Search...">
            <br>
            <br>
            <center>
                <input type="submit" value="Search" name="searchsub" id="searchsub">
            </center>
        </form>

PHP:

        <?php
            if(isset($_GET['search']) && isset($_GET['searchsub']))
                {
                    $search = $_GET['search'];
                    $results = mysqli_query($connection, "SELECT * FROM mi4 WHERE Title LIKE '$search'");
                    echo "<table><tr><td>Title</td><td>Teacher</td><td>Date</td><td>Description</td><td>Submitter</td></tr>";
                    while($row = mysqli_fetch_array($results))
                    {
                        echo "<tr><td>". $row['Title'] ."</td><td>". $row['Teacher'] ."</td><td>". $row['Date'] ."</td><td>". $row['Description'] ."</td><td>". $row['Submitter'] ."</td></tr>";
                    }
                    echo "</table>";
                }
        ?>

【问题讨论】:

  • or die(mysqli_error($connection)) 添加到 mysqli_query() 看看它是否会产生任何结果。另外,请确保您已连接并使用相同的 API。
  • "New Item" wont = 'new' you need LIKE '$search%'" 你也应该转义用户输入。
  • 我补充说,它没有返回错误。一定是其他问题。
  • 另外,在执行LIKE '$search' 时需要进行精确搜索。您可能想使用类似LIKE '%$search'LIKE '$search%'LIKE '%$search%'
  • % 符号正确,谢谢!

标签: php html mysql forms sql-like


【解决方案1】:

取决于 $search 字符串是什么。当您在 db Title 中拥有完全相同的字符串时,您传递给 $search 它必须工作。但是,当您还想查找子字符串时,您必须在 $search 字符串之前和/或之后放置百分比字符 %。

例如

LIKE '%$search%'

【讨论】:

    【解决方案2】:

    首先,我不会在输入中使用默认值,而是应该使用占位符属性使其看起来像这样

    <input type="text" name="search" id="search" placeholder="Search...">
    

    在查询中尝试像这样使用它

    $results = mysqli_query($connection, "SELECT * FROM mi4 WHERE Title LIKE '%$search%'");
    

    % 符号是通配符,因此如果您不使用它,查询将搜索变量上的确切文本,使用此符号查询将在整个字符串中搜索变量上的文本。

    这是 MyQSL 中使用的一些通配符的列表 SQL Wildcards

    【讨论】:

      猜你喜欢
      • 2013-02-03
      • 1970-01-01
      • 1970-01-01
      • 2016-08-30
      • 2013-10-10
      • 1970-01-01
      • 2017-11-23
      • 2011-10-02
      • 1970-01-01
      相关资源
      最近更新 更多