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");
Подскажите, почему неправильно работает?
Спасибо!
Ответы (2)
Привет.
Полный пример кода можно? В $count_rows лежит объект класса mysqli_result. Как из него получается результат?
Попробуй убрать as count.
Также рекомендую ознакомиться с вот этой статьёй - https://habr.com/ru/post/64655/
Может быть откажетесь от использования этого способа.
Ну и помимо вашего вопроса - рекомендую пройти наши курсы по PHP и MySQL, так как в примере писали году в 2009.
Здравствуйте, спасибо за ответ!
Действительно дальше идет такая конструкция:
$row = $count_rows->fetch_array(MYSQLI_ASSOC);
return $row["count"];
Просто много чего убирала, чтобы оставить именно проблемный кусок, а получилась, что вырезала нужное)
Вчера пробовала много способов, убирала "SQL_CALC_FOUND_ROWS", добавляла еще какие-то конструкции, в итоге сделала CALC. Просто смотрится не очень красиво.
CALC вместо чего?
Здравствуйте,
просто два запроса:
первый
SELECT CALC(1)
FROM `table`
второй
SELECT SQL_CALC_FOUND_ROWS `id`, `typ`, `src`, `cmp`, `trm`, `vst`
FROM `table`
LIMIT 25
Поскольку нашла статью, где тестируются запросы на время исполнения, и такая запись SELECT FOUND_ROWS() оказывается и не быстрее двух запросов.
Понял, спасибо
Жалко, конечно, что не удалось разобраться с SELECT FOUND_ROWS(), в поиске множество схожих проблем, но у большинства криво, но работает.
Скажите, цитата: "так как в примере писали году в 2009", Вы имеете ввиду PDO или сам запрос неправильно составлен?
Просто среди массы информации достаточно сложно выудить что-то полезное, очень была рада, когда наткнулась на Ваш блог, читаю MVC, совсем мне сложно даётся, у Вас как-то понятнее для меня.