Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > PHP: Избранное > постраничный вывод


Автор: Всемогущий 22.4.2007, 17:59
почитал статью  http://forum.vingrad.ru/index.php?show_type=articles&showtopic=147416&st=0&unread=&anchor=entry1107563  не работает :( 
Код

<?php
function Oglavlenie($page,$kolvo,$inone,$otstup,$Murl) {
         //первый параметр номер страницы которая сейчас активна
         //$kolvo количество строк на одной странице
         //$start переменная в которая говорит  с какой страници будет начинаться оглавление
         //$stop соответственно заканчиавется
         $oglavlenie='';
         //узнаем максимальное число страниц
        $maxpage=ceil ($kolvo/$inone) ;
         // $otstup=5; максимальное колво видимых номеров страниц
         //$page=1; номер страницы
         //$kolvo=11; общее кол во линий
         //$inone=5; линий на страницу
         $maxpage=ceil ($kolvo/$inone) ;
         $start=$page-$otstup;if($start<1)$start=1;
         $stop=$page+$otstup ;if($stop>$maxpage)$stop=$maxpage;
         foreach(range ($start,$stop) as $v){
                if($v==$page){$v1='<b>['.$v.']</b>';}else $v1=$v ;
                $oglavlenie.='<a href="'.$Murl.'page='.$v.'">'.$v1.'</a>&nbsp;'."\r\n";}


    return  $oglavlenie;
    }





//echo Oglavlenie(1,500,20,3,'http://mysite.ru/index.ru?') ;
?>

так работает
далее рабта с mysql

Код

<?php
$page=1;
$imone=10;


$result = mysql_query ('SELECT SQL_CALC_FOUND_ROWS * FROM tbl_name  LIMIT '.($imone*$page-$imone).','.$imone);
 //что то делаем с найденными надписями
/*
while ($row = mysql_fetch_array($result)) {
     print_r($row);
    }
mysql_free_result($result);
*/

//далее выводим оглавление
 $num_rows=mysql_fetch_row(mysql_query('SELECT FOUND_ROWS();'));
 echo Oglavlenie($page,$num_rows[0],$imone,3,'http://mysite.ru/index.ru?') ;


?>

Автор: Всемогущий 23.4.2007, 09:22
сделал ещё более универсально
Код

<?php
function Oglavlenie($page,$kolvo,$inone,$otstup,$nameVARpage) {
        //$nameVARpage имя переменной которая содержит номер страници
        //где были туда и придём
         $Murl='"http://'.$_SERVER['HTTP_HOST'].$_SERVER["SCRIPT_NAME"];
         $myqery=$_GET; unset($myqery[$$nameVARpage]);

         //первый параметр номер страницы которая сейчас активна
         //$kolvo количество строк на одной странице
         //$start переменная в которая говорит  с какой страници будет начинаться оглавление
         //$stop соответственно заканчиавется

         //узнаем максимальное число страниц
        $maxpage=ceil ($kolvo/$inone) ;
         //$otstup; максимальное колво видимых номеров страниц
         //$page; номер страницы
         //$kolvo; общее кол во линий
         //$inone; линий на страницу
         $maxpage=ceil ($kolvo/$inone) ;
         $start=$page-$otstup;if($start<1)$start=1;
         $stop=$page+$otstup ;if($stop>$maxpage)$stop=$maxpage;
         foreach(range ($start,$stop) as $v){
         $myqery[$nameVARpage]=$v;
         $endqery=$Murl.'?'.http_build_query($myqery);
         if($v==$page){$v='<b>['.$v.']</b>';}
         $oglavlenie[]='<a href='.$endqery.'">'.$v.'</a>';}


    return  implode(' | '."\r\n",$oglavlenie);;
    }





echo Oglavlenie(1,500,20,3,'page') ;
?>

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)