Текущее время: 23 ноя 2017, 17:08


Вывод постранично основных страниц

постраничная навигация

Вывод постранично основных страниц

Сообщение koctik » 30 мар 2013, 07:12

При необходимости если нужно сделать постраничный вывод основных страничек, например в таком возьмём файле page.php то существуют несколько способов, например с добавлением такого кода:

Код: Выделить всё
<?php
// суперглобальный массив
if (isset ($_REQUEST["id"]))
{
$id =$_REQUEST["id"];
settype($id,"integer");
}
else
{
$id =1;
}
[b]$num_ps=4[/b]; // Количество номеров которое будет выводиться с левой и с правой сторон страниц.
[b]$num_alls=150;[/b] // Всего, сколько вы выводите страниц разделив на 5
$limits=5;
$ns=$num_alls/$limits;
if (!is_integer($ns))
{
settype($ns,"integer");
$ns++;
}
if ($ns>1)
{
print "<center>";
$starts=$id-$num_ps;
$end_p=$id+$num_ps;
if ($end_p>$ns)
{
$end_p=$ns;
}
$starts=$end_p-$num_ps*2;
if ($starts<1)
{
$starts=1;
}
$end_p=$starts+$num_ps*2;
if ($starts>1)
{
$t=$starts-1;
// $PHP_SELF - это веб-путь к файлу, т.е. к самому себе (где установлен код)
print "<br><h2><a href=\"$PHP_SELF?id=1\">&#171;&#171;</a><a href=\"$PHP_SELF?id=".$t."\">&#171;</a> ";
}
for ($i=$starts;$i<$end_p+1 && $i<$ns+1;$i++)
{
if ($id!=$i)
{
print "<a href=\"$PHP_SELF?id=".$i."\">".$i."</a> ";
}
else
{
print "<a href=\"$PHP_SELF?id=".$i."\" style=\"color:#FF00CC\"><b>".$i."</b></a> ";
}
}
if ($end_p<$ns)
{
$asd=$num_alls/$limits;
print "<a href=\"$PHP_SELF?id=".$i."\">&#187;</a><a href=\"$PHP_SELF?id=".$asd."\">&#187;&#187;</a>";
}
print "</center></h2><br>";
}
print "<p align='center'>Всего страниц: ".$ns."<hr></p>";
if ($num_alls>$limits)
{
$nop2=($id-1)*$limits;
if ($nop2>$num_alls or $id<1)
{
print "Не существует такой страницы";
}
}
?>


Другой способ вставки в этот же файл (вышеописанный тогда убираем) с занесением кода:

Код: Выделить всё
<?php [b]$cnts=700;[/b] // все количество страниц, разделённое на 20
[b]$rpps=20;[/b] // на сколько разделить
$rads=3; // ссылок показываем рядом с номером данной страницы (3 справа+3 слева + активная страница = всех 7)
$link_ctpan='page.php'; // название пути файла
if (isset($_GET['id']))
{
$pags=$_GET['id']-1; // выводимая из страниц
}
else
{
$pags=0;
}
$link=$rads*2+1;
$ctpan=ceil($cnts/$rpps);
if ($pags>0) { echo "<div align='center'><a href=\"$link_ctpan?id=1\">Сначала</a> | <a href=\"$link_ctpan?id=".($pags)."\"> Предыдущий</a> |"; }
$start=$pags-$rads;
if ($startyem>$ctpan-$link) { $startyem=$ctpan-$link; }
if ($startyem<0) { $startyem=0; }
$ends=$startyem+$link;
if ($ends>$ctpan) { $end=$ctpan; }
for ($i=$startyem; $i<$ends; $i++) {
echo "&nbsp; ";
if ($i==$pags) {
echo "<b>";
} else {
echo "<a href=\"$link_ctpan?id=".($i+1)."\">";
}
echo ($i+1);
if ($i==$pags) {
echo "</b>";
} else {
echo "</a>";
}
if ($i!=($ends-1)) { echo "&nbsp;|"; }
}
if ($ctpan>$link&&$pags<($ctpan-$rads-1)) { echo " .....&nbsp;<a href=\"$link_ctpan?id=".($ctpan)."\">".($ctpan)."</a>"; }
if ($pags<$ctpan-1) { echo " <a href=\"$link_ctpan?id=".($pags+2)."\">&nbsp;Следующий</a> | <a href=\"$link_ctpan?id=".($ctpan)."\"> Последний</a></div>"; } ?>


Как видите показано два вида постраничной, из которых можно выбрать один для работы.

koctik

Автор темы
Аватара пользователя
Прохожий
 
Сообщения: [ 3 ]
Зарегистрирован: 13 май 2012, 16:39
Откуда: Украина
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.

Вернуться в PHP для начинающих

Кто сейчас на конференции

Зарегистрированные пользователи: Baidu [Spider]

cron