2013-12-12 2 views
0

Кажется, что глупость застряла прямо сейчас, но я не могу получить второе условие для соответствия столбцу базы данных. Когда я делаю это так:запрос базы данных не соответствует второму условию

"SELECT * FROM comments WHERE article_id='$link'" 

Я получаю все комментарии, связанные с названием статьи. Но когда я добавить второе условие, я ничего не получаю:

"SELECT * FROM comments WHERE article_id='$link' AND show=1" 

Я пытался делать шоу = «1» также и что не работает. Последний столбец в моей базе данных - это INT, а значение по умолчанию определено так: 1. Как я могу заставить мой многословный запрос работать? Спасибо ...

+0

Что такое' $ link' равно? Какое сообщение об ошибке вы получили? –

+1

Есть ли фактические данные для обоих условий? Не имеет значения, если вы задаете значение по умолчанию, вы могли бы вставить строку с этим значением как null или что-то еще ... – Alfabravo

+0

Каково значение 'show' для строк, возвращаемых из первого запроса? –

ответ

2

Ваша ошибка не только в состоянии. SHOW находится в списке MySQL reserved words. Поэтому избегайте этого:

SELECT * FROM comments WHERE article_id='$link' AND `show`=1 

-или еще, не используйте зарезервированные слова для обозначения столбцов. Конечно, убедитесь, что строки с show=1 существуют в таблице.

+0

+1, я узнал, что это хорошая практика, чтобы избежать всех столбцов, с точки зрения читаемости. – thepratt

+0

В этом была проблема ... Я изменил имя столбца с экрана на дисплей, и теперь он работает ... когда я узнаю !!! Не забывайте о зарезервированных словах – denikov

3

show - ключевое слово в mysql. Запрос должен быть неудачным. Используйте show с обратными кавычками, как этого `show`

1

show является MySQL reserved word, так что вам нужно обернуть его кавычкой `show`

"SELECT * FROM comments WHERE article_id='$link' AND `show`=1" 
Смежные вопросы