Witam,
poniżej prezentuję kod stronicowania wyników z mysql.
Problemem jest podawanie przez skrypt wartości ujemnych -2 -1 0 1 2 3
Gdy jest do pokazania "Porzednia 1 ... 5 6 7 ... 12 Następna" jest ok - a przynajmniej nie zauważyłem problemów
Widoczne jest to przy małych ilościach (np. jak jest do stronicowania jedna czy dwie strony).
W czym może być przyczyna? A może ktoś ma proste i sensowne gotowe rozwiązanie?
<?php
$nbratpage = 25;
if (isset($_GET["page"])) { $page = $_GET["page"];
}else{
$page=1;
}
$total_records = $roww['qntpgs'];
$total_pages = ceil($total_records/$nbratpage); $navnum = 5;
$forstart = $page - floor($navnum/2
); $forend = $forstart + $navnum;
if($forstart <= 0){ $forstart = 1; }
$overend = $total_pages - $forend;
if($overend < 0){ $forstart = $forstart + $overend + 1; }
$forend = $forstart + $navnum;
$prev = $page - 1;
$next = $page + 1;
if($ctt_producent == NULL && $ctt_firm == NULL)
{
if($page > 1
) echo "<li><a href=\"". "$adres_lokalny" . "?page=".$prev."\">Poprzednia</a></li>"; if ($forstart > 1
) echo "<li><a href=\"". "$adres_lokalny" . "?page=1\">1</a></li>"; if ($forstart > 2
) echo "<li><a>...</a></li>"; for($forstart; $forstart < $forend; $forstart++){
if($forstart == $page){
}else{
echo "<li><a href=\"". "$adres_lokalny" . "?page=".$forstart."\">"; }
echo "<b>".$forstart."</b></a></li>"; }
if($forstart < $total_pages) echo "<li><a>...</a></li>"; if($forstart - 1
< $total_pages) echo "<li><a href=\"". "$adres_lokalny" . "?page=".$total_pages."\">".$total_pages."</a></li>"; if($page < $total_pages) echo "<li><a href=\"". "$adres_lokalny" . "?page=".$next."\">Następna</a></li>";
}
else
{
if($page > 1
) echo "<li><a href=\"". "$adres_lokalny" . "&page=".$prev."\">Poprzednia</a></li>"; if ($forstart > 1
) echo "<li><a href=\"". "$adres_lokalny" . "&page=1\">1</a></li>"; if ($forstart > 2
) echo "<li><a>...</a></li>"; for($forstart; $forstart < $forend; $forstart++){
if($forstart == $page){
}else{
echo "<li><a href=\"". "$adres_lokalny" . "&page=".$forstart."\">"; }
echo "<b>".$forstart."</b></a></li>"; }
if($forstart < $total_pages) echo "<li><a>...</a></li>"; if($forstart - 1
< $total_pages) echo "<li><a href=\"". "$adres_lokalny" . "&page=".$total_pages."\">".$total_pages."</a></li>"; if($page < $total_pages) echo "<li><a href=\"". "$adres_lokalny" . "&page=".$next."\">Następna</a></li>";
}
?>