was ist hier Falsch ?

P

pledermann

Mein problem:
Ich lese Bilder aus eienm verzeichniss aus, Habe die Blätter funktion eingerichtet. Es soll mir pro seite 16 bilder anzeigen ( ist auch OK! ). Bei der letzten seite steht aber immer noch "Nächste",und wenn ich drauf klicke kommt eine lehre seite.

Was ist falsch an meinem code:

PHP:
<?
$url = "/card.php?action=card&kat=$kat&bild="; 
$subdir = "./post/img/$kat/"; 
 
$verzeichnis = opendir("./".$subdir.$gal); 
while($img = readdir($verzeichnis)) { 
   
    $extension = strtolower(strrchr($img, ".")); 
    if ( ($extension == ".gif") || ($extension == ".jpg") || ($extension == ".png") ) $images[] = $img; 
} 

closedir($verzeichnis);     

$entrys = count($images) - 1; 
$perpage = 16; //Einträge pro Seite 

$pages = ceil($entrys / $perpage); 

$page = $_GET['page']; 

if (!$page) $page = 0; 
if ($page > $pages) $page = $pages; 

$firstpic = ($page * $perpage); 
$lastpic = ($page * $perpage) + $perpage -1; 

if (count($images) > 0) { 

    for ($i = $firstpic; $i <= $lastpic; $i ++) { 
       
        $image = $images[$i]; 

      if (!$image) break; 

        print " <a href=\"".$url.$image."\" onmouseover=\"self.status='".$image 
            ."'; return true;\" onmouseout=\"self.status=''; return true;\">"; 
        print "<img width=\"140\" heigh=\"140\"    src=\"./".$subdir.$gal."".$image 
            ."\" alt=\"$image\" border=\"0\"></a>"; 
    } 
} else { 
    print "<b> Sorry, in dieser Kategorie sind noch keine Bilder<b>\n"; 
} 

echo "<br />"; 

if ($page > 0): 
    $lastpage = $page -1; 
    echo "<a href = \"".$PHP_SELF."?page=".$lastpage."\">Zurück</a>|"; 
endif; 

for($i = 0; $i < $pages; $i++): 
    if($i != $page): 
        echo " <a href = \"".$PHP_SELF."?page=".$i."\">".($i+1)."</a>"; 
    else: 
        echo " <b>".($i+1)."</b>"; 
    endif; 
endfor; 

if ($pages > 0 && $page < $pages): 
    $nextpage = $page + 1; 
    echo " |<a href = \"".$PHP_SELF."?page=".$nextpage."\">Nächste</a>"; 
endif;
?>
 
Du bist mit Deiner Seitenanzahl durcheinander gekommen...

Hier berechnest Du Deine Seitenanzahl
Code:
...
$pages = ceil($entrys / $perpage);
...
if ($page > $pages) $page = $pages;  // Kann man löschen, macht gar nix
...
die ja auch korrekt ist, doch fängst Du aber immer bei 0 an zu zählen, darum musst Du diese Zahl noch um ein reduzieren
Code:
...
if ($pages > 0 && $page < ($pages-1)); // $pages um 1 reduziert
...
VG Clemens
 

Neue Beiträge

Zurück