|
|
|
|
$num=5;
$page=intval($_GET['page']);
if ($page=='') {$page=1;}
$posts=mysql_result(mysql_query("SELECT COUNT(*) FROM abstract"),0);
$total=intval(($posts - 1) / $num) + 1;
if(empty($page) or $page < 0) $page = 1;
if($page > $total) $page = $total;
if ($page != 1) $pervpage = '<a href="?page=1">'. ($page != 1) .'</a>
<a href="?page='. ($page - 1) .'"><</a> ';
if ($page != $total) $nextpage = ' <a href="?page='. ($page + 1) .'">></a>
<a href="?page=' .$total. '">>></a>';
if($page - 2 > 0) $page2left = ' <a href="?page='. ($page - 2) .'">'. ($page - 2) .'</a> ';
if($page - 1 > 0) $page1left = ' <a href="?page='. ($page - 1) .'">'. ($page - 1) .'</a> ';
if($page + 2 <= $total) $page2right = ' <a href="?page='. ($page + 2) .'">'. ($page + 2) .'</a>';
if($page + 1 <= $total) $page1right = ' <a href="?page='. ($page + 1) .'">'. ($page + 1) .'</a>';
echo '<div class="podtitle">страницы: <small>'.$page2left.$page1left.'</small><b>('.$page.')</b><small>'.$page1right.$page2right.'</small></div><div class=kntent><hr/><a href="../">Картинки</a><br><a href="../../">Загрузки</a><br><a href="../../../">На главную</a><br>';
|
сейчас постраничная навигация выглядит так:1 2 3.Как переделать код,чтоб было 1 2 3...10? | |
|
|
|
|
|
|
|
для: ekstrom
(21.04.2010 в 16:43)
| | Можжно так:
$href - ссылка на страницу, которая будет открываться при нажатии на номер
$maxlistpage - сколько строк на странице выводить
$res - результат запроса к BD
$q - сам запрос
результат новый $res
Функция добавляет к заросу limit, поэтому его не должно быть в запроса к BD
Например:
$q="SELECT * FROM abstract where 1";
$res=mysql_query($q);
$res=print_list_page("index.php",10,$res,$q);
|
function print_list_page($href,$maxlistpage,$res,$q)//печать страниц
{
$countfind=mysql_num_rows($res);
if ($countfind>$maxlistpage)
{
$page_count=ceil($countfind/$maxlistpage);
if (!isset($_GET['page'])) $tekpage=1; else $tekpage=$_GET['page'];
if ($tekpage>$page_count) $tekpage=1;
$start_find=($tekpage-1)*$maxlistpage;
$res=mysql_query($q." limit $start_find,$maxlistpage");
$count=mysql_num_rows($res);
if ($countfind>$maxlistpage)
{
print "<div align='right'>";
$start_i=$tekpage-3;if ($start_i<=0) $start_i=1;
$end_i=$tekpage+4;if ($end_i>$page_count) $end_i=$page_count+1;
if ($tekpage>5) print "<A HREf='$href&page=1'>1...</A>";
if ($tekpage==5) print "<A HREf='$href&page=1'>1</A>";
for ($i=$start_i;$i<$end_i;$i++)
{
print " <A HREF='$href&page=$i'>$i</A> ";
}
if ($tekpage<$page_count-4) print "<A HREf='$href&page=$page_count'>...$page_count</A>";
if ($tekpage==$page_count-4) print "<A HREf='$href&page=$page_count'>$page_count</A>";
print "</div>";
}
}
return $res;
}
|
| |
|
|
|
|