2015-02-09 206 views
-1

我有一个数据库填充值。我想根据他们的标题查询并获得某些值。我正在使用sql中的LIKE查询来完成此操作。在SQL中LIKE查询不起作用

出于某种原因,当我在搜索栏中查询“新”时没有结果出现。该数据库有标题的项目:新建项目

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

加上'或死亡(mysqli_error($连接))''到一些mysqli_query的wildcars名单()'看它是否得到任何东西。另外,请确保您已连接并使用相同的API。 – 2015-02-09 23:01:25

+0

“New Item”wont ='new'你需要LIKE'$ search%'“你也应该逃避用户的输入 – chris85 2015-02-09 23:05:34

+0

我补充说,它没有返回错误,其他的一定是问题 – Rumple 2015-02-09 23:05:47

回答

1

要看什么是$搜索字符串。当你在db Title中使用完全相同的字符串时,你传递给$ search,它必须工作。但是,当你想要查找子字符串时,你必须在你的$ search字符串之前和/或之后放置百分比字符%。

例如

LIKE '%$search%' 
0

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

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

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

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

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

下面是MyQSL使用 SQL Wildcards