2015-02-09 137 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