Разбиение на страницы 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, чтобы правильно подобрать элементы таблицы.