2015-08-19 3 views
0

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

Предупреждения: mysqli_fetch_assoc() ожидает параметр 1, чтобы быть mysqli_result, булевых дал

Я прочитал в, что это означает ошибки, и я знаю, что мой запрос, что это неправильно. Это сработало отлично, прежде чем я изменил запрос. Именно это раньше ...

$query = mysqli_query($con, "SELECT * FROM users WHERE `group` = 3"); 

Я изменил его ...

$query = mysqli_query($con, "SELECT * FROM users WHERE `group` = 3, 4 ,5"); 

$array = array(); 
while ($row = mysqli_fetch_assoc($query)) { 

Что я делаю неправильно в новом запросе?

+0

Похоже, что переменная '$ query' является булевым, а не объектом mysqli_result. Вероятно, это означает, что функция 'mysqli_query()' терпит неудачу, и поэтому '$ query' получает значение' false'. Включите отчет об ошибках в PHP, если вы еще этого не сделали, и посмотрите, что происходит с запросом MySQL. –

ответ

0

Для использования значения, разделенные запятыми В

SELECT * FROM users WHERE `group` IN(3,4,5); 
+0

По какой-то причине, после обновления, на выходе все еще отображаются только пользователи группы 3? – Becky

+0

Проверить значение в базе данных для групп 4 и 5. – Saty

+0

Они находятся в базе данных. – Becky

1

у вашего запроса есть ошибки.

Попробуйте это:

$query = mysqli_query($con, "SELECT * FROM users WHERE `group` in (3, 4 ,5)"); 

in выполняет ту же функцию, как OR

+0

По какой-то причине, после обновления, на выходе все еще отображаются только пользователи группы 3? – Becky

1

Ваш запрос действительно неправильно, вы не можете проверить значение, как это.
Если вы хотите проверить несколько значений, вы можете использовать ключевое слово IN.

"SELECT * FROM users WHERE `group` IN (3, 4 ,5)" 
+0

По какой-то причине, после обновления, на выходе все еще отображаются только пользователи группы 3? – Becky

1

Если вы хотите проверить, либо одного из использования выбора IN вместо:

$query = mysqli_query($con, "SELECT * FROM users WHERE `group` IN (3, 4 ,5)"); 
+0

По какой-то причине, после обновления, на выходе все еще отображаются только пользователи группы 3? – Becky

+0

Это странно. Попробуйте выполнить запрос, чтобы проверить только на 4, например, вашу первоначальную попытку с 3 и сообщить свои результаты. – nomistic

+0

@Becky попытается найти другие значения? – user5173426

0

вы можете попробовать это следующее также может вы получите свой результат.

SELECT * FROM users WHERE group = 3 or group = 4 or group = 5; 

Спасибо.

+1

С оператором AND вы не получите никаких результатов. Вы не можете иметь значение, равное 3 И 4 одновременно. И не забывайте возвращать свои имена столбцов (и имя таблицы, но это менее важно здесь). – Blaatpraat

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