[ERLEDIGT] Bildergalerie wird nicht richtig dargestellt

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

kitkat

Neues Mitglied
4 Dezember 2016
4
0
1
30
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:

B3nnoX

Aktives Mitglied
9 Januar 2013
533
106
43
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.
 
B

bdt600

Guest
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>";
    
?>
 
  • Like
Reaktionen: Spicelab
Werbung:

Spicelab

Mod | ZENmechanic
Teammitglied
Moderator
27 November 2015
1.669
319
83
Goa
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
 
  • Like
Reaktionen: JPM und B3nnoX
Werbung: