Постраничный вывод на PHP
Комментариев:
На форуме CodeNet.Ru неоднократно задавали вопрос о том, как сделать постраничный вывод на PHP. Я объяснял, что такое LIMIT, и как его использовать в MySql.
Но все время оказывалось, что вопрос касался только навигации по страницам:

Вот универсальная процедура, выводящая такой блок ссылок:
- $records — всего записей
- $r_start — текущая страница
- $URL — адрес, заканчивающийся на «=»
- $inpage — записей на страницу
<?function LeftRight($records,$r_start,$URL,$inpage) {$str="";if ($records<=$inpage) return;if ($r_start!=0) {$str.="<a href=".$URL."0><<</a> ";$str.="<a href=$URL".($r_start-1)."><</a> ";}else $str.="<< < ";if ($r_start==0) {$sstart=$r_start-0;$send=$r_start+10;}if ($r_start==1) {$sstart=$r_start-1;$send=$r_start+9;}if ($r_start==2) {$sstart=$r_start-2;$send=$r_start+8;}if ($r_start==3) {$sstart=$r_start-3;$send=$r_start+7;}if ($r_start==4) {$sstart=$r_start-4;$send=$r_start+6;}if ($r_start>=5) {$sstart=$r_start-5;$send=$r_start+5;}if ($send*$inpage>$records) $send=$records/$inpage;if ($sstart<0) $sstart=0;if ($records%$inpage==0) $add=0; else $add=1;for ($i=$sstart;$i<$send;$i++) {if ($i==$r_start) $str.=" <B>".($i+1)."/".(intval($records/$inpage)+$add)."</B> | ";else $str.="<a href=$URL".($i)."><U><B>".($i+1)."</B></U></a> | ";}if ($r_start+(1-$add)<intval($records/$inpage)) {$str.=" <a href=$URL".($r_start+1).">></a>";$str.=" <a href=$URL".(intval($records/$inpage)-(1-$add)).">>></a>";}else $str.=" > >>";return($str);}// Пример вызоваprint "<center>".LeftRight(567,43,"index.htm?start=",20)."</center>";?>
Download this code: leftright.phps