Пользовательские запросы с использованием массивов и функции implode в php - PullRequest
0 голосов
/ 11 января 2019

Я кодирую игровой сайт. На этом сайте каждый вопрос должен отображаться пользователю только один раз. Идентификаторы вопросов хранятся в одном поле:

имя поля в таблице: hidden_questions

значения hidden_questions: 1,2,3,17

Я пытаюсь получить идентификаторы из базы данных и сохранить их в массиве с помощью функции implode:

$q1= array($data['question_id']);
$q2= implode(',', $q1); // returns 1,2,3,4,5

И я хочу отобразить неповторяющийся вопрос, используя следующий запрос:

$sql = "SELECT * FROM question WHERE question_id!=('".$q2."') LIMIT 1";

Этот код не работает, и отображаются вопросы с идентификатором, хранящимся в поле hidden_questions . пожалуйста, направь меня.

1 Ответ

0 голосов
/ 11 января 2019

Я вижу, что кто-то уже написал комментарий о решении, но я все еще записываю его для вас.

Вы на правильном пути, и я понимаю, что вы хотите сделать. Но MySQL не имеет что-то вроде != в этом синтаксисе.

Может быть, вы можете попробовать использовать NOT IN

$sql = "SELECT * FROM question WHERE question_id NOT IN (".$b.") LIMIT 1";

Кроме того, почему вы используете LIMIT 1? Согласно вашему объяснению, вы хотите показать несколько вопросов.

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

...