PHP / MySQL Pagination - PullRequest
       17

PHP / MySQL Pagination

6 голосов
/ 22 июня 2010

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

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

Спасибо)

Ответы [ 3 ]

5 голосов
/ 22 июня 2010
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 .

0 голосов
/ 23 июня 2010

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

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

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

0 голосов
/ 22 июня 2010

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

$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'];
}

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

...