- Оригинальная статья на английском:
- Статья на русском (продолжение этой):
Блог
sayber
Блог
sayber
$mysqlconnect = @mysql_connect ($dbserver, $dbuser, $dbpass);mysql_query ("set character_set_client='cp1251'");
mysql_query ("set character_set_results='cp1251'");
mysql_query ("set collation_connection='cp1251_general_ci'");/*
* $records - всего записей
* $r_start - текущая страница
* $URL - адрес, заканчивающийся на "="
* $inpage - записей на страницу
*/
function Navig($records,$r_start,$URL,$inpage) {
$str="";
if ($records< =$inpage) return;
if ($r_start!=0) {
$str.="< a href="http://go.blog.ru/?.$URL."0 >< < /a > ";
$str.="< a href=http://go.blog.ru/?$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=http://go.blog.ru/?$URL".($i)." >< U >< B >".($i+1)."< /B >< /U >< /a > | ";
}
if ($r_start+(1-$add)< intval($records/$inpage)) {
$str.=" < a href=http://go.blog.ru/?$URL".($r_start+1)." >Следующая< /a > ";
$str.=" < a href=http://go.blog.ru/?$URL".(intval($records/$inpage)-(1-$add))." > >< /a >";
}
else $str.=" Следующая >";
return($str);
}
А использовать ее так:
$sql2 = mysql_query("SELECT count(*) as counter FROM post"); //Сколько всего записей
$row2 = mysql_fetch_array($sql2);
//$_GET['pg'] Это номер стр.
print "< center >".Navig($row2['counter'],$_GET['pg'],"/a.php?pg=",10)."< /center >";