Как настроить пейджинг в PHP? - PullRequest
0 голосов
/ 06 февраля 2012

У меня есть 300 строк (данных), каждая страница содержит 10 записей, мне нужны первые 10 страниц, затем нажмите «Далее», затем отобразите следующую 10 страницу, вот мой код:

<?php


$eu = ($start - 0);
$limit = 10;
$this1 = $eu + $limit;
$back = $eu - $limit;
$next = $eu + $limit;


if ($nume > $limit)
{
    echo'<div class="pagination right">';
    if ($back >= 0)
    {
        echo"<a href='$page_name?start=$back&o" . $_SESSION['clicked'] . "&p=$desc'>&laquo;</a>";
    }

    $i = 0;
    $l = 1;
    for ($i = 0; $i < $nume; $i = $i + $limit)
    {
        if ($i <> $eu)
        {
            echo"<a href='$page_name?start=$i&o=" . $_SESSION['clicked'] . "&p=$desc'>$l</a>";
        }
        else
        {
            echo "<a  class='active'>$l</a>";
        }
        $l = $l + 1;
    }

    if ($this1 < $nume)
    {
        echo "<a href='$page_name?start=$next&o=" . $_SESSION['clicked'] . "&p=$desc'>&raquo;</a>";
    }

    echo '</div>';
}
echo '</div></div>';

?>

Тогда я получу ответ, подобный этомуhttp://app.ologie.us/app/admin/Screen.png

Может ли кто-нибудь порекомендовать эффективную подкачку в PHP.

Ответы [ 4 ]

1 голос
/ 06 февраля 2012

Если $limit - это размер вашей страницы, и вы добавляете другую переменную запроса $page - представляющую страницу результатов поиска, запрошенную пользователем - вы можете использовать

$start = ($page-1)*$limit;
for($i=$start;$i < $start + $limit;$i=$i+1) {
  ...
}

для перебора «страницы» результатов.

Но, конечно, не имеет смысла обрабатывать разбиение на страницы на уровне представления результатов. Вы хотите ограничить количество результатов, полученных по запросу.

Кроме того, я бы действительно подумал об использовании PHP-фреймворка, а не о его кодировании так, как вы представляете в своем запросе. Скорее всего, ваше приложение будет сложно обслуживать.

1 голос
/ 06 февраля 2012

Вот учебник по основному разбиению на страницы.

http://www.phpfreaks.com/tutorial/basic-pagination

1 голос
/ 06 февраля 2012

Делать, как сказал Тим, по моему мнению, в основном плохой способ сделать это. Прочитайте необходимые данные, когда это необходимо. Вы можете сделать это с индексом min - max для вашего массива. Предположим, вы хотите отобразить 10 записей на странице:

$min =  $page * 10; //Page is the current page
$max = $min + 10;

Затем вы просто просматриваете данные между индексами min - max.

for($i = $min; $i < $max; $i++) {
  //Echo your data like normal 
}

Если вы собираете данные из MySQL, вы можете поискать LIMIT.

0 голосов
/ 06 февраля 2012

Вы делаете все это на стороне клиента с помощью плагина DataTables для jQuery. Этот плагин также дает вам гораздо больше возможностей, таких как сортировка и поиск.

http://datatables.net/

Если у вас ОЧЕНЬ большой стол, это, вероятно, не очень хорошая идея.

...