mysql выборка "все кроме"

интернет программирование php MySQL базы данных

почему так работает:
$q = mysql_query("SELECT * FROM test WHERE theme='".$id."' AND id NOT IN (9,10,11,12,13) ORDER BY RAND() LIMIT 1");

а так нет
$q = mysql_query("SELECT * FROM test WHERE theme='".$id."' AND id NOT IN ('".$notin."') ORDER BY RAND() LIMIT 1");

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

Примечание:
$notin = "9,10,11,12,13";

Примечание:
без одинарных кавычек ему не нравится. пишет ошибку mysql_fetch_array(): supplied argument is not a valid MySQL result resource
Ответы:
У тебя $notin в кавычках.
Сейчас
... IN ('".$notin."') ORDER ...
Правильно
... IN (".$notin.") ORDER ...
неизвестно, что там у вас в переменной $notin
Да и кавычки какие-то непонятные. Зачем строкой отдавать числа?
еще раз - зачем массив чисел отдавать строкой? Это же в детсадике проходят.
1. Выведи отдельно результирующий запрос.


11 лет назад

RPI.su - самая большая русскоязычная база вопросов и ответов. Наш проект был реализован как продолжение популярного сервиса otvety.google.ru, который был закрыт и удален 30 апреля 2015 года. Мы решили воскресить полезный сервис Ответы Гугл, чтобы любой человек смог публично узнать ответ на свой вопрос у интернет сообщества.

Все вопросы, добавленные на сайт ответов Google, мы скопировали и сохранили здесь. Имена старых пользователей также отображены в том виде, в котором они существовали ранее. Только нужно заново пройти регистрацию, чтобы иметь возможность задавать вопросы, или отвечать другим.

Чтобы связаться с нами по любому вопросу О САЙТЕ (реклама, сотрудничество, отзыв о сервисе), пишите на почту [email protected]. Только все общие вопросы размещайте на сайте, на них ответ по почте не предоставляется.