Модераторы: Aliance, skyboy, MoLeX, ksnk

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Постраничный вывод на PHP, html, формы 
V
    Опции темы
MoLeX
Дата 24.9.2008, 17:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Местный пингвин
****


Профиль
Группа: Модератор
Сообщений: 4076
Регистрация: 17.5.2007

Репутация: нет
Всего: 140



мда... к р а с и в о


--------------------
Amazing  smile 
PM MAIL WWW ICQ   Вверх
awers
Дата 26.9.2008, 01:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник
Сообщений: 1465
Регистрация: 22.3.2006
Где: Россия, Таганрог

Репутация: нет
Всего: 31



*флуд* 

Осталось только мне на ассемблере написать постраничный вывод для XSLT?  smile 
PM MAIL WWW ICQ Skype   Вверх
slonofanya
Дата 22.4.2009, 17:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 1
Регистрация: 22.4.2009

Репутация: нет
Всего: нет



Вот еще посмотрите мой код:

Код

// Место, где вставляются циферки
<?
    $PageVarName = 'page';
    $CurPage = $_REQUEST[$PageVarName];
    $SLCountRowsToShowing = 2;
    if ($CurPage ){
        $CurPage = ($CurPage-1)*$SLCountRowsToShowing;
    }else $CurPage = 0;
    
    require("InitDbMySql.php");
    $SqlShowAll = "SELECT * FROM `*` ORDER BY `*` DESC LIMIT ".$CurPage.", ".$SLCountRowsToShowing;

       .........................................................................

       $PageUrl = '*.php?';
       $SqlPagesMessage = "SELECT `*` FROM `*`;";
       include 'pages.php';
?>

// Сам скрипт "pages.php"
<?
    $FirstPage = '<a class="PageNumber" href="'.$PageUrl.$PageVarName.'=1"> 1 </a>&nbsp;&nbsp;...&nbsp;&nbsp;&nbsp';
    $lastPage = '...&nbsp;&nbsp <a class="PageNumber" href="'.$PageUrl.$PageVarName.'='.$SLPages.'"> '.$SLPages.' </a>&nbsp;&nbsp;';
    function Forvard($PageTemp, $PageUrl, $PageVarName){
        return '<a class="PageArrow" href="'.$PageUrl.$PageVarName.'='.$PageTemp.'">&rarr;</a>';
    }
    function Backward($PageTemp, $PageUrl, $PageVarName){
        return '<a class="PageArrow" href="'.$PageUrl.$PageVarName.'='.$PageTemp.'">&larr;</a>&nbsp;&nbsp;&nbsp;';
    }
    function WriteNumbers($SLPage, $CurentPage, $SLEdit, $PageUrl, $PageVarName){
        if ($SLPage == ($CurentPage-1)){
            echo '<span class="CurPageSpan"><b> '.$CurentPage.' </b>&nbsp;&nbsp;</span>';
        } else {echo '<a class="PageNumber" href="'.$PageUrl.$PageVarName.'='.$CurentPage.'"> '.$CurentPage.' </a>&nbsp;&nbsp;';}
    }
?><p class="PagesBody"><?
    $SqlShowAll = $SqlPagesMessage;
            $result = mysql_query($SqlShowAll);
            if ($result)
                $rows = mysql_num_rows($result);
            else $rows = 0;
            $CountToShow = $SLCountRowsToShowing;
            if ($rows > $CountToShow){
                $AbsRows = $rows - $rows % $CountToShow;
                $StayRows = $rows - $AbsRows;
                $AbsPages = floor($rows / $CountToShow);
                $SLPages = $AbsPages;
                if ($StayRows) $SLPages++;
                //    ------------- Сдесь уже определены все необходимые переменные --------------
                //    ------------- $rows = Общее количество элементов.
                //    ------------- $AbsRows = Количество элементов, на полностью заполненых страницах.
                //    ------------- $StayRows = Количество элементов на "поледней" странице. 
                //    ------------- $AbsPages = Общее количество страниц, полностью заполненых элементами.
                //    ------------- $SLPages = Общее количество страниц.
                 
                $SLPage = $CurPage; //    ------------- = Номер текущей страницы.
                if (!$SLPage) {$SLPage = 1;}
                if ($StayRows == 0){
                    $SLBegin = Round($AbsRows / $AbsPages * ($SLPage-1));
                } else {
                    if ($SLPage > $AbsPages){
                        $SLBegin = $rows - $StayRows;
                    }else {
                        $SLBegin = Round($AbsRows / $AbsPages * ($SLPage-1));
                    }
                }
            } else {$SLBegin = 0;}
            $SLPageBegin = $SLBegin;
    
    $CurentPage ++;
    
    $PageTemp = $_REQUEST[$PageVarName];
    if (!$PageTemp) $PageTemp = 1;
    $SLPage = $PageTemp-1;

    if ($PageTemp > 1){
        $PageTemp--;
        echo Backward($PageTemp, $PageUrl, $PageVarName);
    }
    if (($SLPages > 10) && ($SLPage > 6)){
        echo $FirstPage;
    }
    $PageTemp = $SLPages - 3;
    if ($SLPages > 10){
        if ($SLPage <= 5){
            for ($i=1; $i<11; $i++)
                WriteNumbers($SLPage, $i, $SLEdit, $PageUrl, $PageVarName);
        }
            elseif (($SLPage < $PageTemp) && ($SLPage > 5)){
                for ($i=$SLPage - 5; $i<$SLPage + 5; $i++)
                    WriteNumbers($SLPage, $i, $SLEdit, $PageUrl, $PageVarName);
            }
                else{
                    for ($i=$SLPages - 5; $i<$SLPages+1; $i++)
                        WriteNumbers($SLPage, $i, $SLEdit, $PageUrl, $PageVarName);
                }
    }
        else{
            for ($i=1; $i<$SLPages+1; $i++)
                WriteNumbers($SLPage, $i, $SLEdit, $PageUrl, $PageVarName);
        }
    
    if (($SLPages > 10) && ($SLPage < $PageTemp-1)){
        echo $lastPage;
    }
    
    $PageTemp = $_REQUEST[$PageVarName];
    if (!$PageTemp) $PageTemp = 1;
    if ($SLPage < ($SLPages-1)) {
        $PageTemp ++;
        echo Forvard($PageTemp, $PageUrl, $PageVarName);
    }
?></p>


Пример работы:
user posted image

Может кому поможет.

Комментируйте. Это первый подобный, написаный  мною, скрипт.

Это сообщение отредактировал(а) slonofanya - 22.4.2009, 17:31
PM MAIL   Вверх
zetxi815eb
Дата 5.8.2009, 17:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 95
Регистрация: 17.1.2007

Репутация: нет
Всего: нет



в принципе вещь не сложная. Я думаю каждый php программист такое в состоянии написать
PM MAIL   Вверх
nerezus
Дата 11.3.2010, 13:47 (ссылка)    | (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Вселенский отказник
****


Профиль
Группа: Участник
Сообщений: 3330
Регистрация: 15.6.2005

Репутация: нет
Всего: 43



Гораздо проще для постраничного вывода использовать Zend_Paginator

Код контроллера:
Код
 $paginator = Zend_Paginator::factory(массив или селект или число);
$paginator->setCurrentPageNumber(номер страницы);
$paginator->setItemCountPerPage(записей на страницу);
$paginator->setView($this->view);
$this->view->paginator = $paginator;


Строка в виде:
Код
<?= $this->paginationControl($this->paginator, 'Sliding', '/pagination.phtml'); ?>



--------------------
Сообщество художников Artsociety.ru
PM MAIL WWW   Вверх
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Избранное | Следующая тема »


 




[ Время генерации скрипта: 0.1182 ]   [ Использовано запросов: 23 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.