Loading...
PHP/MySQL | помогите с mysqli запросом
$onl = $mysqli->query('SELECT count(*) FROM `users` WHERE `online` > "'.(time()-600).'"');
$online = $onl->num_rows;

дамп показывает bool false
если сократить запрос и убрать where то показывает всего 1 запись. всего их 10 . колонка online есть. в чем причина? помогите а(
мне нужно получить количество записей
$online = $mysqli->query('SELECT * FROM `users` WHERE `online` > "'.(time()-600).'"')->num_rows; я тебя не совсем что хочешь попробуй так
$onl = $mysqli->query('SELECT count(*) FROM `users` WHERE `online` > "'.(time()-600).'"');
Этим запросом ты уже получаешь COUNT (количество записей) по твоему условию. Он всегда вернет 1 запись.
Затем num_rows - возвращает количество. Естественно ту одну единственную запись

Замени num_rows на fetch_row
и выводи $online[0]
________
посл. ред. 19.02.2019 в 11:32; всего 1 раз(а); by Dizzy221
Добавлю что с точки зрения производительности, если тебе нужно получить только число, объективнее использовать COUNT(*) вместо num_rows
Челябинский, num_rows не стоит использовать в качестве счётчика
так как mysql будет извлекать все строки с базы и отправлять в php
COUNT() же отправит только число - счётчик
faces (19.02.2019 в 11:33)
Челябинский, num_rows не стоит использовать в качестве счётчика
так как mysql будет извлекать все строки с базы и отправлять в php
COUNT() же отправит только число - счётчик

Все строки по условию.
faces, я count в коде не использую вообще
Челябинский (19.02.2019 в 11:36)
faces, я count в коде не использую вообще

И это твоя ошибка
На 10-100 строках не заметно
Но когда ты будешь "считать" num_rows на данных 10К+, у тебя страница будет думать по несколько секунд
Пока mysql отправит все 10К, пока php посчитает
Одно дело, когда это просто какие-то ID посчитать, а если это таблица статей ?
И в 10К данных на гигабайт
Я не думаю что php и mysql обрадуются пересылке гигабайта данных, для обычного подсчёта строк
faces, ну с таким объемом данных не работал,так что не могу знать)
Онлайн: 0
Время:
Gen. 0.1133
(c) Bym.Guru 2010-2025