Чат Telegram
Группа ВКонтакте

FOUND_ROWS() возвращает только 1

Здравствуйте, пытаюсь получить количество строк до условия LIMIT, на форумах нашла конструкцию "SELECT FOUND_ROWS()", но она возвращает только 1, хотя строк 9..

$res = $mysqli->query("SELECT SQL_CALC_FOUND_ROWS `id`, `typ`, `src`, `cmp`, `trm`, `vst` 
 FROM `table`
 LIMIT 25");

$count_rows = $mysqli->query("SELECT FOUND_ROWS() as count");

Подскажите, почему неправильно работает?
Спасибо!

kisma6@mail.ru 14.06.2020 в 13:00

Ответы на вопрос (2)


Привет.
Полный пример кода можно? В $count_rows лежит объект класса mysqli_result. Как из него получается результат?

Попробуй убрать as count.

Также рекомендую ознакомиться с вот этой статьёй - https://habr.com/ru/post/64655/
Может быть откажетесь от использования этого способа.

Ну и помимо вашего вопроса - рекомендую пройти наши курсы по PHP и MySQL, так как в примере писали году в 2009.

ivashkevich 15.06.2020 в 07:06

Здравствуйте, спасибо за ответ!
Действительно дальше идет такая конструкция:

$row = $count_rows->fetch_array(MYSQLI_ASSOC);
return $row["count"];

Просто много чего убирала, чтобы оставить именно проблемный кусок, а получилась, что вырезала нужное)
Вчера пробовала много способов, убирала "SQL_CALC_FOUND_ROWS", добавляла еще какие-то конструкции, в итоге сделала CALC. Просто смотрится не очень красиво.

kisma6@mail.ru 15.06.2020 в 08:07

CALC вместо чего?

ivashkevich 21.06.2020 в 11:23

Здравствуйте,
просто два запроса:
первый

SELECT CALC(1) 
FROM `table`

второй

SELECT SQL_CALC_FOUND_ROWS `id`, `typ`, `src`, `cmp`, `trm`, `vst` 
FROM `table`
LIMIT 25

Поскольку нашла статью, где тестируются запросы на время исполнения, и такая запись SELECT FOUND_ROWS() оказывается и не быстрее двух запросов.

kisma6@mail.ru 21.06.2020 в 11:45

Понял, спасибо

ivashkevich 21.06.2020 в 12:18

Жалко, конечно, что не удалось разобраться с SELECT FOUND_ROWS(), в поиске множество схожих проблем, но у большинства криво, но работает.
Скажите, цитата: "так как в примере писали году в 2009", Вы имеете ввиду PDO или сам запрос неправильно составлен?
Просто среди массы информации достаточно сложно выудить что-то полезное, очень была рада, когда наткнулась на Ваш блог, читаю MVC, совсем мне сложно даётся, у Вас как-то понятнее для меня.

kisma6@mail.ru 21.06.2020 в 17:20

И про PDO и про нэйминг переменных

ivashkevich 21.06.2020 в 19:00

Добавить новый ответ