• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

[ERLEDIGT] Bildergalerie wird nicht richtig dargestellt

kitkat

Neues Mitglied
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 "<b>Es befinden sich keine Bilder in diesem Ordner.</b>";
    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;\">&gt;</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++;
        }
        
?>
 
Werbung:
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>";
    
?>
 
Werbung:
Ist das alles nicht ein wenig kompliziert?
Sicherlich :D

Nur, wer schraubt schon gerne noch groß an einem entdeckten "Plug&Play"-Template herum? :p:D
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.
PHP:
echo "<b>Es befinden sich keine Bilder in diesem Ordner.</b>";
[Google] PHP Es befinden sich keine Bilder in diesem Ordner hat mir [wie immer] den Weg gewiesen :cool::D

http://www.mywebsolution.de/tutorials/5/page_3/show_PHP-Blaetterfunktion-Eine-Bildergalerie.html
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.
Die Zeilen 66-76 sind ein Duplikat von 51-61.

Weil der Tutor (Anm.d.Red.: Kurzform von Tutorial-Autor) 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 :p
 
Zurück
Oben