После того, как поставил в запрос COUNT(*) as count
, началась выводиться только 1 запись, хотя $data['count']
показывает, что их 3. Если же убрать COUNT(*) as count
, то всё станет нормально, будут выводиться 3 записи, а не 1.
В чём может быть проблема?
$query = $db->query("
SELECT COUNT(*) as count, support_questions.id ...
FROM `table`
INNER JOIN ...
");
while($data = $db->fetch($query)) {
echo $data['id']
}
Если нет группировки (GROUP BY), то весь набор считается одной группой, и, соответственно, вы получите одну строку. Вам стоит почитать о группировке.
Это не проблема, а нормальное поведение.
Ознакомьтесь с использованием агрегатных функций например здесь:
http://www.sql.ru/docs/sql/u_sql/ch6.shtml
Если в выборке использована агрегатная функция, то возвращается одна строка, если при этом использовано GROUP BY то возвращается несколько строк.
Если я правильно понял вопрос, вы хотите сделать выборку, ограниченную лимитом, и при этом посчитать количество записей вообще. В MySQL можно сделать так:
SELECT SQL_CALC_FOUND_ROWS support_questions.id
...
и после этого выполнить второй запрос:
SELECT FOUND_ROWS();
См. детальное описание опции.
Если простыми словами, то добавление count(*) схлопывает (агрегирует) все строки результата в одну. Вместо них выдаётся количество исходных строк
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Вот кодМне нужно, чтобы он обновлял только один раз, а он обновляет каждый раз при обновлении
Файл загружается через форму а в обработчике вот такой код - файл загружается и на сайт и в базу но ссылка не него косячит - тоесть он не вызывается...