Bildergalerie wird nicht richtig dargestellt

Hallo!

Ich versuche mittels einer PHP Vorlage eine kleine und ganz einfache Bildergalerie zu erstellen. Die Bilder sollen in 6x6 Spalten und Reihen dargestellt werden aber aus irgendeinen Grund werden mir 7 Reihen und 6 Spalten angezeigt. Wäre über einen Tipp dankbar wo der Fehler liegt.

Hier ist eine Beispielseite:

http://experience.96.lt/

und hier der PHP Code:

[PHP] <?php
$extensions = array(‚gif‘, ‚jpg‘, ‚jpeg‘, ‚png‘);
$dir = ‚images/‘;
$bilder = array();
foreach($extensions as $key => $extension)
$bilder = array_merge($bilder, glob($dir.‚*.‘.$extension));
$anzahl = count($bilder);
if(!$anzahl)
echo „Es befinden sich keine Bilder in diesem Ordner.“;
else{

    $spalten  = 6;
    $reihen = 6;
    $pro_seite = $spalten*$reihen;

    $seiten = ceil($anzahl/$pro_seite);

    $start = isset($_GET['seite'])?(int)$_GET['seite']:1;

    if ($start < 1)
        $start = 1;
    if ($start > $seiten)
        $start = $seiten;
}
echo "<table>\n";
echo " <tr>\n";
echo "  <td style=\"width:140;\">\n";
echo "Seite: \n";
echo "  </td>\n";
echo "  <td style=\"text-align:left\">\n";
if ($start != 1)
    echo "<a href=\"index.php?seite=".($start-1)."\"><</a>&nbsp\n";
for($i=1; $i<=$seiten; $i++) {
    if ($i==$start)
        echo $i."\n";
    else
        echo "<a href=\"index.php?seite=".$i."\">".$i."</a>\n";
}
if ($start != $seiten)
    echo "&nbsp<a href=\"index.php?seite=".($start+1)."\" style=\"text-decoration:underline;\">></a> \n";
echo "  </td>\n";
echo " </tr>\n";
echo "</table>\n";

$offset = ($start-1)*$pro_seite;
echo "<table>\n";
// horizontale Ausrichtung
for($i=0; $i<$reihen; $i++) {
    echo " <tr>\n";
    // vertikale Ausrichtung
    for($j=0; $j<$spalten; $j++) {
        echo "  <td>\n";
        // Prüfen, ob der Bild-Index auch existiert
        if(isset($bilder[$offset]))
            echo "<img src=\"".$bilder[$offset]."\">\n";
        else
            echo "&nbsp";
        echo "  </td>\n";
        // Bild-Index erhöhen
        $offset++;
    }
    echo " </tr>\n";
}
echo "</table>\n";

    for($j=0; $j<$spalten; $j++) {
        echo "  <td>\n";
        // Prüfen, ob der Bild-Index auch existiert
        if(isset($bilder[$offset]))
            echo "<img src=\"".$bilder[$offset]."\">\n";
        else
            echo "&nbsp";
        echo "  </td>\n";
        // Bild-Index erhöhen
        $offset++;
    }

?> [/PHP]

Du hast in Zeile 66 noch eine for schleife. Wenn du die raus nimmst, dann hast du deine 6 Reihen.
Im Seitenquelltext kann man gut sehen, dass die letzte Reihe nicht in der table ist.

Ist das alles nicht ein wenig kompliziert?
[PHP]<?php

$data = range(1,36);

$col = 0;

echo "<table>\n";

for ($i = 0; $i < count($data); $i++)
{
    if (! ($col % 6))
       echo "  <tr>\n";
    
    echo "     <td>" . $data[$i] . "</td>\n";
    
    $col++;
    
    if (! ($col % 6))
       echo "  </tr>\n";
}

echo "</table>";

?>[/PHP]

Danke habs hinbekommen!

Sicherlich :smiley:

Nur, wer schraubt schon gerne noch groß an einem entdeckten „Plug&Play“-Template herum? :p:D

[SIZE=3][Google][/SIZE] PHP Es befinden sich keine Bilder in diesem Ordner hat mir [SIZE=3][wie immer][/SIZE] den Weg gewiesen :cool::smiley:

http://www.mywebsolution.de/tutorials/5/page_3/show_PHP-Blaetterfunktion-Eine-Bildergalerie.html

Die Zeilen 66-76 sind ein Duplikat von 51-61.

Weil der Tutor [SIZE=3](Anm.d.Red.: Kurzform von Tutorial-Autor)[/SIZE] ungeschickterweise die einzelnen Funktionsblöcke des Scripts immer in <?php ... ?> abbildet und kommentiert, das komplette Script aber nicht im Gesamtpaket präsentiert, hat @kitkat im totalen Workflow (lesen, Codesnippet markieren/kopieren/einfügen, weiterlesen, …) den fünften und letzten Block rüberkopiert, ohne zu be/merken, dass er ein Auszug vom Codeblock davor ist.

Weitere Kommentare behalte ich jetzt für mich :stuck_out_tongue: