2015-05-04 2 views
-2

Я пытаюсь реализовать раскрывающийся список поиска для веб-сайта, который может искать и сузить поиск студентов. Я получаю следующее сообщение об ошибке в мой код:версия для правильного синтаксиса для использования рядом с 'lname LIKE'% dff% '' в строке 1

Check the documentation for your version for the right syntax to use near lname LIKE '%dff%'' at line 1 

Вот мой код:

<?php 

ob_start(); 

#Start Session: 

session_start(); 



#Database Connection 

include_once('../config/setup.php'); 



if(isset($_GET['s']) && $_GET['s'] != ''){ 
    $s = $_GET['s']; 
    $sql = "SELECT * FROM students WHERE fName, lName LIKE '%$s%'"; <**--- this where the website detects the error, something about the like query is wrong please help!!** 
    $result = mysqli_query($dbc, $sql); 
    while($row = mysqli_fetch_array($result,$dbc)){ 
     $url = $row['fName']; 
     $title = $row['lName']; 
     echo "<div style='' id='searchtitle'>" . "<a style='font-family:   verdana; text-decoration: none; color: black;' href='$url'>" . $title . "</a>" . "</div>"; 
    } 

} 


?> 
+0

..fName like '% $ s%' ИЛИ ​​lName like '% $ s%' .. (заполнить пробелы) –

+0

Я сделал bro и у меня все еще такая же ошибка (у вас есть ошибка в синтаксисе SQL , проверьте руководство, соответствующее версии вашего сервера MySQL, для правильного синтаксиса для использования рядом с 'lname LIKE'% kdjfksd% '' в строке 1) – Bruno

+0

'echo $ sql;' опубликовать результат –

ответ

6

Ваш пункт where либо отсутствует параметр, или удалить один. Это объясняет синтаксическую ошибку.

WHERE fName, lName LIKE '%$s%'"; 
     ^^^^^^ // it starts there 

, если вы хотите, чтобы найти, если оба Fname и LName приравнивать ваш поиск для, вам нужно сделать

WHERE fName LIKE '%$s%' OR lName LIKE '%$s%'"; 

Sidenote: Вы можете заменить OR на AND, если вы хотите, чтобы соответствовать и то и другое.

или только один:

WHERE fName LIKE '%$s%'"; 

Для получения дополнительной информации о LIKE, посетите http://www.mysqltutorial.org/mysql-like/ и его синтаксис.

Plus, руководство https://dev.mysql.com/doc/refman/5.0/en/string-comparison-functions.html

Вот еще http://www.tutorialspoint.com/mysql/mysql-like-clause.htm

Пример вытащил из^

SELECT field1, field2,...fieldN table_name1, table_name2... 
WHERE field1 LIKE condition1 [AND [OR]] filed2 = 'somevalue' 

  • Затем mysqli_fetch_array($result,$dbc)) удалить ,$dbc оттуда. Соединение DB принадлежит только в вашем запросе.

Кроме того, если запрос содержит символ, который MySQL может жаловаться, такие как апостроф и, например John's place, то вам необходимо, чтобы избежать ваши данные:

$s = mysqli_real_escape_string($dbc, $_GET['s']); 

Использование or die(mysqli_error($dbc)) для mysqli_query() будет сигнализировать синтаксис ошибка.

+0

Я сказал им: «Или он сказал, что нет такой работы. .. –

+0

@Dagon 'AND' это тогда ;-) или их запрос не удался. –

+0

im все еще ждет 'echo $ sql;' –

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

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