Closed TheImmortalLines closed 8 years ago
Если нужно только количество строк в таблице, то запрашивать надо только его.
$arResult['ITEMS_COUNT'] = $db->getOne('SELECT count(*) FROM ?n', $table);
Если нужны и сами строки, и их количество, то непонятно, чем не устраивает
$arResult['ITEMS'] = $db->getAll('SELECT * FROM ?n', $table);
$arResult['ITEMS_COUNT'] = count($arResult['ITEMS']);
Нужны и строки и их количество.
$arResult['ITEMS'] = $db->getAll('SELECT * FROM ?n', $table); $arResult['ITEMS_COUNT'] = count($arResult['ITEMS']);
Соглашусь. Рабочий вариант.
Интуитивно, получить количество строк с помощью mysqli_num_rows казалось более правильно. Как вы считаете, какой вариант быстрее?
Вопрос относится не совсем к библиотеке, но лично я использую два запроса
$collection->EntityArray = $db->getAll("SELECT * FROM table LIMIT ?i, ?i", $pageIndex * $pageSize, $pageSize);
$collection->TotalCount = $db->getOne("SELECT COUNT(id) FROM table")
На больших данных этот вариант работает быстрее, т.к. выбирается только часть данных из БД и полное кол-во получается только выборкой количества, запрос такой почти мгновенно проходит
Мне нечего добавить к тому, что написал @alexprey
mysqli_num_rows действительно более интуитивный, но в корне неправильный способ. Запрашивать количество строк в таблице надо только у самой БД.
Если вдуматься, mysqli_num_rows - довольно бессмысленная функция. В принципе, узнавать у бд количество строк, которые она вернула, не нужно практически никогда.
Здравствуйте. Задача: получить количество строк с простым SELECT
Данную задачу я решил так:
Хотелось бы решать в меньшее количество строк, типа: