Разбиение на страницы PHP/MySQL

Я новичок в php и sql, и у меня есть один крошечный вопрос о том , как реализовать sql-запрос, который может:

  • взять, например, 5 записей из БД, вставить на 1-й странице (1-5)
  • чем взять следующие 5 записей из той же БД и вставить их на другую страницу (5-10)
    и так далее :)

спасибо )

3 ответов


SELECT col FROM table LIMIT  0,5; -- First page, rows 1-5
SELECT col FROM table LIMIT  5,5; -- Second page, rows 6-10
SELECT col FROM table LIMIT 10,5; -- Third page, rows 11-15

читать ограничить раздел на MySQL SELECT helppage. Если вы хотите отобразить общее количество доступных строк, вы можете сделать дополнительный подсчет или использовать ROW_COUNT.


есть несколько способов сделать это, я думаю, что самая быстрая производительность следующая:

$ItemsPerQuery = 5;
$CurrentPage = 0; //here you can add the current site through $_GET array or other ways, but don't forget to use mysql_real_escape_string(), because of mysql injection 

$Query = mysql_query("SELECT * FROM table LIMIT ".($ItemsPerQuery*$CurrentPage).",".$ItemsPerQuery);

while($row = mysql_fetch_assoc($query))
{
    echo $row['column_name'];
}

материал, который вы должны использовать:


Если ваш запрос не возвращает запредельное количество результатов, рассмотрите возможность использования Jquery для его страницы с функцией Tablesorter. Он принимает правильно отформатированную HTML-таблицу и страницы, сортировку и т. д. на лету...нет необходимости в дополнительных переменных запроса, если вы не хотите. Это намного проще, чем идти по полномасштабному маршруту подкачки PHP, и намного быстрее для пользователя.

мой личный любимый пример здесь: http://datatables.net/

Это может быть не полностью удовлетворить ваши потребности, но это круто для многих приложений. Если вы это сделаете, только не забудьте отформатировать таблицу с thead и tbody, чтобы правильно подобрать элементы таблицы.