PHP / MySQL Pagination

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

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

Спасибо )

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 

Прочтите раздел LIMIT на странице справки MySQL SELECT . Если вы хотите отобразить общее количество доступных строк, вы можете либо сделать дополнительный счет, либо использовать функцию 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']; } 

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

  • mysql_real_escape_string ()
  • mysql_fetch_assoc ()

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

Мой личный любимый пример: http://datatables.net/

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