SQL прямой способ получить количество строк в таблице

Привет снова люди из stackoverflow. У меня есть процедура, в которой есть шаг, который я считаю ненужным, скажем, вы хотите получить все изображения из галереи и ограничить определенное количество изображений на странице.

$db = PDO object
$start = (pagenum x images per page)
$limit = (images per page)
$itemsdata = $db->query("SELECT id,name FROM gallery LIMIT $start,$limit")->fetchAll();
$numitems = $db->query("SELECT id FROM gallery")->rowCount();

Например, $imgsdata — это массив всех изображений в галерее. $numimgs — количество изображений в галерее.

вам потребуется $imgsdata для выполнения цикла foreach для каждого изображения в массиве, а $numimgs необходимо для создания нумерации страниц (например, ‹‹ 1 2 3 4 >>)

моя обида на $db->query("SELECT id FROM gallery")->rowCount(); Это похоже на какой-то обман, нет ли прямого способа получить количество строк в таблице, что-то вроде SELECT gallery.Rows?

p.s. в настоящее время я использую SQLite, но он мне также понадобится для MySQL и PostgreSQL.


person Timo Huovinen    schedule 04.08.2010    source источник
comment
это так просто ... ну, это то, что вы получаете за самоучку ...   -  person Timo Huovinen    schedule 04.08.2010
comment
как вообще называется нумерация страниц (‹‹ 1 2 3 4 ››)?   -  person Timo Huovinen    schedule 04.08.2010


Ответы (3)


Это скажет вам количество строк:

SELECT COUNT(*) FROM gallery
person David_001    schedule 04.08.2010

Простая агрегатная функция count() быстро возвращает количество строк.

Select count(*) from table
person jle    schedule 04.08.2010

Я тоже!

SELECT COUNT(*) FROM gallery

Да, это должно работать одинаково в MySQL, SQLite и PostgreSQL.

person FrustratedWithFormsDesigner    schedule 04.08.2010