2015-02-20 2 views
1

Я создаю простой поиск по sql, который ищет термины по ключевым словам. Только, я должен ввести полную ключевую слововую фазу для показа результата.Поиск по ключевым словам не работает

index.php

$term = $_GET['q']; 
$term = strip_tags($term); 
$term = mysql_real_escape_string($term); 

require_once("<PATHTOFILE>\\dbconnect.php"); 
$sql = "SELECT * FROM Search WHERE Keywords LIKE '{$term}' LIMIT 15"; 
$result = mysqli_query($con, $sql) or die("couldn't apply search"); 

<h1>Results for '<?php echo $term; ?>'</h1> 
<br> 
<ul> 
    <?php 
     if($count = mysqli_num_rows($result) > 0) { 
      while($row = mysqli_fetch_assoc($result)) { 
    ?> 
     <li><?php echo $row['Title']; ?></li> 

    <?php 
      } 
     } 
     if($count = mysqli_num_rows($result) == 0) { 
      ?>No Results.<?php 
     } 
    ?> 
</ul> 

SQL Структура таблицы: capture

Любая идея, что случилось?

+1

surround с% ''% {$ term}%'' –

+0

@ Lashane Wow. Спасибо. – Krii

+1

Вы также смешиваете MySQL API с 'mysql_real_escape_string()'. Так что это не сработает. Кроме того, после этого он должен быть размещен после того, как вы подключились к БД, используя 'i' эквивалент' mysqli_real_escape_string() 'и передающий параметр подключения к функции. –

ответ

3

Во-первых, вы смешиваете MySQL API с mysql_real_escape_string().

Эта функция не смешивается с функциями mysqli_.

Вам необходимо использовать mysqli_real_escape_string($con,$term);, размещенный после вашего подключения.

Наряду с '%{$term}%' как указано Lashane в комментариях.

+0

Тогда единственное, что должно быть смешано, это ... нах, просто шутит. Единственное, что вам нравится в 20 шутках, - это хорошая компания. * Морнин Ральф *. –

+1

* Aye Cap'n *, у вас есть это пятно на стеклянной оправе! * Морнин Сэм! * @JayBlanchard –

Смежные вопросы