2010-06-22 2 views
6

Я новичок в PHP и SQL, и у меня есть один крошечный вопрос о том, как реализовать SQL-запроса, который может:PHP/MySQL Разбиение

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

Спасибо)

+0

возможно дубликат [MySQL пагинацией без двойных запросов?] (Http://stackoverflow.com/questions/818567/mysql-pagination-without-double-querying) –

ответ

5
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 section on the MySQL SELECT справка. Если вы хотите отобразить общее количество доступных строк, вы можете либо сделать дополнительный счет, либо использовать функцию ROW_COUNT.

0

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

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

Материал следует использовать:

+0

Да, спасибо) я получил что-то вроде это в моей голове, но не представляло, как правильно это реализовать. – user313216

+0

Неправильно, страница 1 не отображает первые 5 записей, начальный предел 1 * 5, должен быть 0, и вообще он должен быть ($ ItemsPerQuery * $ CurrentPage - $ ItemsPerQuery) – cypher

+0

uhm, true :) '$ CurrentPage' должно быть 0, потому что 0 * 5 = 0. извините –

0

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

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

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

Смежные вопросы