在SQL中的LIKE查询不起作用

时间:2015-02-09 22:59:48

标签: php html mysql forms sql-like

我有一个充满价值的数据库。我想根据标题查询并获取某些值。我在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>";
                }
        ?>

2 个答案:

答案 0 :(得分:1)

取决于什么是$ search字符串。当你在db Title中使用完全相同的字符串时,你将传递给它必须工作的$ search。但是当你想要找到子串时,你必须在$ search字符串之前和/或之后加上百分比char%。

例如

LIKE '%$search%'

答案 1 :(得分:0)

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

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

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

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

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

以下是MyQSL中使用的一些野猫的列表 SQL Wildcards