2013-10-13 3 views
-1

В принципе, я собрал таблицу, в которой отображаются результаты из базы данных mysql, есть также окно поиска, которое пользователи могут использовать для фильтрации результатов. В поле поиска создается переменная с именем $ query. Однако результаты, которые я не хочу отображать, содержат букву «y» в столбце «private» в базе данных. Я знаю, как отображать результаты поиска, и скрывать частные отдельно, однако я не могу заставить обе функции работать одновременно. РНР я для этого на данный момент:PHP mysql_query SELECT * FROM синтаксическая ошибка

$raw_results = mysql_query("SELECT * FROM file WHERE private != 'y' (`title` LIKE '%".$query."%') OR (`tags` LIKE '%".$query."%') OR (`user` LIKE '%".$query."%') ORDER BY id DESC") or die(mysql_error()); 

Однако это Reterns:

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '(`title` LIKE '%%') OR (`tags` LIKE '%%') OR (`user` LIKE '%%') ORDER BY id DESC' at line 1 

Я полностью тупик, как я не могу видеть, как это исправить, я знаю, что это, вероятно, на самом деле простая проблема, но ваша помощь будет очень оценена. Благодаря

+0

Вы забыли И раньше (название (и(), охватывающее ORs). – LSerni

ответ

2

Вы пропустили, и, и, возможно, некоторые из них():

$raw_results = mysql_query("SELECT * FROM file WHERE 
    private != 'y' AND (
    (title LIKE '%".$query."%') OR 
    (tags LIKE '%".$query."%') OR 
    (user LIKE '%".$query."%') 
) 
    ORDER BY id DESC" 
) or die(mysql_error()); 
+0

Большое вам спасибо, это исправлено прямо сейчас! – user2876946

0
$raw_results = mysql_query("SELECT * FROM file WHERE private <> 'y' and (title LIKE '%".$query."%') OR (tags LIKE '%".$query."%') OR (user LIKE '%".$query."%') ORDER BY id DESC") or die(mysql_error()); 
0

вам необходимо включить ваши условия внутри () для работы, как вы хотите попробовать это:

$raw_results = mysql_query("SELECT * FROM file 
           WHERE private != 'y' AND (
           (`title` LIKE '%".$query."%') OR 
           (`tags` LIKE '%".$query."%') OR 
           (`user` LIKE '%".$query."%') 
           ) ORDER BY id DESC") or die(mysql_error()); 
0

Возможно, вам понадобится И:

WHERE private != 'y' AND ((title LIKE '%".$query."%') OR (tags LIKE '%".$query."%') OR (user LIKE '%".$query."%')) 
Смежные вопросы