Странициране с ограничение на страниците

Sunrize

Registered
Имам едно странициране от тука .. дето ми извежда страниците ето тъй ..

Код:
 [първа]  [<<]  1 2 3 4 5 6 7 8 9 10 11 12 13 14 15   [>>]  [последна]
// тъй извежда всички страници

Обаче съм измисълил страницирането да става в едно прозорче което е с фиксирани размери и не искам да излизат цифрите извън него..
Та въпроса ми е как ще стане ето така:

[първа] [<<] 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 [>>] [последна]

така ще изглежда когато се цъкне на страница 50 .. да показва 10 страници преди цъкнатата и 10 страници след цъкнатата
когато си на 1ва страница да извежда от 1 до 21 а на последната пак 21 страници ..

Код:
$query = "SELECT COUNT(id) AS numrows FROM files";
$result = mysql_query($query) or die('Error, query failed');
$row = mysql_fetch_array($result, MYSQL_ASSOC);
$numrows = $row['numrows'];
$maxPage = ceil($numrows/$broinastranica);
$self = $_SERVER['PHP_SELF'];
$nomeranastranici = '';
for($page = 1; $page <= $maxPage; $page++)
{
if ($page == $pageNum)
{
$nomeranastranici .= " $page ";
}
else
{
$nomeranastranici .= " <a href=\"$self?page=$page\">$page</a> ";
}
}
if ($pageNum > 1)
{
$page = $pageNum - 1;
$predishna = " <a href=\"$self?page=$page\"> [<<] </a> ";

$parva = " <a href=\"$self?page=1\">[първа]</a> ";
}
else
{
$predishna = ' ';
$parva = ' ';
}
if ($pageNum < $maxPage)
{
$page = $pageNum + 1;
$sledvashta = " <a href=\"$self?page=$page\"> [>>] </a> ";
$posledna = " <a href=\"$self?page=$maxPage\">[последна]</a> ";
}
else
{
$sledvashta = ' ';
$posledna = ' ';
}
echo "
<center><div id='menubar'>$parva  $predishna  $nomeranastranici  $sledvashta  $posledna</div></center>";

това е кода ..

1+
 
Код:
<?php

$query = "SELECT COUNT(id) AS numrows FROM files";
$result = mysql_query($query) or die('Error, query failed');
$row = mysql_fetch_array($result, MYSQL_ASSOC);
$numrows = $row['numrows'];
$maxPage = ceil($numrows/$broinastranica);

$self = $_SERVER['PHP_SELF'];
$nomeranastranici = '';

$cur_page = $_GET['page'];
if(($cur_page + 5) > $maxPage)
		
		$do = $maxPage;
else

		$do = $cur_page + 5;
		
if(($cur_page - 5) <= 1)

		$ot = 1;

else

		$ot = $cur_page - 5;

for($page = $ot; $page <= $do; $page++)
{
if ($page == $pageNum)
{
$nomeranastranici .= (($maxPage == 1)? '' : $page);
}
else
{

$nomeranastranici .= " <a href=\"$self?page=$page\">$page</a> ";
}


}
if ($pageNum > 1)
{
$page = $pageNum - 1;
$predishna = " <a href=\"$self?page=$page\"> [<<] </a> ";

$parva = " <a href=\"$self?page=1\">[първа]</a> ";
}
else
{
$predishna = ' ';
$parva = ' ';
}
if ($pageNum < $maxPage)
{
$page = $pageNum + 1;
$sledvashta = " <a href=\"$self?page=$page\"> [>>] </a> ";
$posledna = " <a href=\"$self?page=$maxPage\">[последна]</a> ";
}
else
{
$sledvashta = ' ';
$posledna = ' ';
}
echo "
<center><div id='menubar'>$parva  $predishna  $nomeranastranici  $sledvashta  $posledna</div></center>";

?>
 

Горе