Показать сообщение отдельно

  #10  
Старый 30.09.2008, 12:56
[x26]VOLAND
Постоянный
Регистрация: 07.06.2006
Сообщений: 556
Провел на форуме:
7549607

Репутация: 2702


По умолчанию

Цитата:
Как реализовать постраничный вывод? mysql+php
Из моего движка:

PHP код:
function pager($page$pages$pg) { # Build pagination
    
$res ' <table border=0 class=row1 width=370 cellspacing=0 cellpadding=0><tr><td align=right><br><b>Pages:&nbsp;&nbsp;</b>';
    
$numpag = (int)($pages);
    if (
$numpag $pages) {$numpag++;}
    if (
$numpag == 0) {$numpag 1;}
    
$currp = (int)($pg);
    
$res .= ($pg <= 1) ? '<b><font color=#AAAAAA>«</font></b> ' '<a href="?page='.$page.'&pg='.($currp-1).'">«</a> ';
    if (
$numpag <= 10)
    {
        for (
$i=1$i<=$numpag$i++)
        {
            
$res .= (($i <= $pg) && ($i >= $pg)) ? '<b><font color=#000000>['.$i.']</font></b> ' '<a href="?page='.$page.'&pg='.$i.'">'.$i.'</a> ';
        }
    }
    else
    {
        
$showpag 10;
        
$st $currp-4;
        if (
$st 1) {$st 1;}
        if (
$st 2
        { 
            
$res.=' <a href="?page='.$page.'&pg=1">1</a> <b><font color=#AAAAAA>...</font></b>';
            
$showpag-=2;
        }
        else if (
$currp 5)
        {
            
$res.=' <a href="?page='.$page.'&pg=1">1</a> ';
            
$showpag-=1;
        }
        if (
$st+$showpag $numpag) {$st $numpag-$showpag;}
        for (
$i=$st$i<=$st+$showpag$i++)
        {
            
$res.= (($i <= $pg) && ($i >= $pg)) ? ' <b><font color=#000000>['.$i.']</font></b> ' ' <a href="?page='.$page.'&pg='.$i.'">'.$i.'</a> ';
        }
            if (
$st < ($numpag-$showpag)-1) {$res.=' <b><font color=#AAAAAA>...</font></b> <a href="?page='.$page.'&pg='.$numpag.'">'.$numpag.'</a> ';}
            else if ((
$currp <= $numpag-5)&&($numpag>$showpag+1)) {$res.=' <a href="?page='.$page.'&pg='.$numpag.'">'.$numpag.'</a> ';}
    }
    
$res .= ($pg >= ($pages)) ? '<b><font color=#AAAAAA>»</font></b> ' '<a href="?page='.$page.'&pg='.($currp+1).'">»</a></td>';
    return 
$res; } 
$page - имя страницы (?page=$page)
$pages - Кол-во страниц.
$pg - текущая страница (?page=$page&pg=$pg)

Пример вызова: echo pager('news',30,15);

Получается нечто подобное:

Pages: « 1 ... 11 12 13 14 [15] 16 17 18 19 ... 30 »
 
Ответить с цитированием