php / mysql результат в страницах - PullRequest
2 голосов
/ 29 января 2011

например, у меня в базе данных 50 строк, как я могу получить результаты MySQL в страницах, 5 результатов на каждой странице и отображать страницы, например: [ 1 ], 2, 3, 4 ..10, если страница 5 => 3, 4, [ 5 ], 6, 7 .. 10, и делать это без обновления всего содержимого страницы.

Ответы [ 3 ]

3 голосов
/ 29 января 2011

Используйте предложения SQL LIMIT и OFFSET.Пример:

Первый запрос:

SELECT col1,..,colN FROM table WHERE ... LIMIT 10;

Следующий запрос:

SELECT col1,..,colN FROM table WHERE ... LIMIT 10 OFFSET 10;

и т. Д.Создайте его программно в зависимости от того, на какой странице они находятся, умножив номер их страницы на смещение и результаты на страницу.

2 голосов
/ 29 января 2011
$page = 0;
$rrp = 5; // Rows per page

$res = mysql_query ("SELECT count(*) FROM table");
$maxrows = (int)@mysql_result($res, 0);

$limit = ($page*$rrp).", $rrp";
$res = mysql_query ("SELECT * FROM table LIMIT $limit");

$pages = ceil($maxrows/$rpp);

echo "<a href='?pg=0'>first</a>";
for ($i=0; $i<=$pages; $i++) {
    echo "<a href='?pg=$i'>".($i+1)."</a>";
}
echo "<a href='?pg=$pages'>last</a>";

Это очень простое разбиение на страницы.
Форматирование способа отображения номера страницы зависит от вас.

Однако загрузка страниц динамически - это отдельная история.потребуется использовать Ajax.Вот где вы загружаете внешний контент через JavaScript для обновления текущей страницы.

1 голос
/ 29 января 2011

Просто выполните поиск в Google для Pagination для того, какой язык или рамки вы используете.Ответ на ваши вопросы является способом долго объяснять здесь полностью.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...