Ankündigung

Einklappen
Keine Ankündigung bisher.

Gallery mit Blätterfunktion

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Gallery mit Blätterfunktion

    Hallo,

    ich bin gerade dabei mir eine Gallery zu basteln.
    Ich muss dazu sagen, ich noch nicht lange am PHP proggen bin, also habt ein wenig nachsehen

    Das Uploaden und erstellen von Ordner ect. habe ich bereits fertig.

    Ich möchte nun noch die "Content" Seite programmieren.
    Das ganze funtkioniert soweit auch, bis auf die Blätterfunktion.

    Ich kann zwar Blättern und es werden auch "andere" Bilder angezeigt, doch leider stehe ich vor dem Problem das einige Bilder doppelt angezeigt werden.
    Die Ursache dafür habe ich bereits gefunden. Es liegt daran, das ich die Bilder aus dem Array mit einer Zählvariable ausgabe.
    Diese Zählvariable ist beim ersten durchlauf 1 und läuft dann die gewünschte Bilderanzahl durch. Bei jeder Datei die kein Bild ist, wird die gewünschte Anzahl um 1 erhöht, um wirklich 6 Bilder anzuzeigen.
    Wenn ich nun aber eine Seite weiter Blätter, ist die Zählvariable Seite * Wunschanzahl - Wunschanzahl. Nun kommen aber doppelte einträge zum Vorschein.
    Ich hoffe ihr könnt mir folgen ^^

    Hier mal der Quelltext:
    PHP-Code:
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    <html>
      <head>
      <meta http-equiv="content-type" content="text/html; charset=windows-1250">
      <meta name="generator" content="PSPad editor, www.pspad.com">
      <title></title>
      </head>
      <body>
        <?php
          $seite 
    $_GET["seite"];  //Abfrage auf welcher Seite man ist
          
          //Einträge pro Seite: Hier 15 pro Seite
          
    $eintraege_pro_seite 6;
          
          
    //Wenn man keine Seite angegeben hat, ist man automatisch auf Seite 1
          
    if(!isset($seite))
          {
            
    $seite 1;
          }
          
          
    //Ausrechen welche Spalte man zuerst ausgeben muss:
          
    $start $seite $eintraege_pro_seite $eintraege_pro_seite;
     


          
    // Zählen wie viele Dateien sich im Ordner befinden (es werden nur jpg, gif, jpeg gezählt) 
          
    $dir '.';
          
    $dh opendir($dir);   
            
          while (
    $file readdir($dh))
          { 
            if ((
    substr(strtolower($file), -3)=="jpg") or (substr(strtolower($file), -3)=="gif") or (substr(strtolower($file), -4)=="jpeg"))       
            {        
              
    $anzahl++;  //Anzahl an Bilder(jpg,gif,jpeg)
            
    }     
          }
          
    closedir($dh);
         
    $dh opendir($dir); 

        
    //Errechnen wieviele Seiten es geben wird
        
    $wieviel_seiten $anzahl $eintraege_pro_seite;

        
        
    // Ausgabe der Bilder in Tabellenform fpr-Schleife gibt die ANzahl der Bilder pro Seite an
    // Immer 2 Bilder in 1ner Spalte
    echo" <table border='1'>";        
            
    //for($i = $start; $i < $seite * $eintraege_pro_seite; $i++)
            
    $i=$start;
            
    $b=0;
            
    $c 0;
            
    $gerade 0;
            
    $bild scandir('.');
            
    $bild_array $bild;
            
            do 
            {
              if (
    strchr($bild_array[$i],".jpg"))
              {
                if (
    $gerade%2!=1)
                {
                  echo 
    "<tr><td>erst<img src='".$bild_array[$i]."' width='368' height='383' alt='Grafik'></td>";
                }
                else 
                { 
                  echo 
    "<td>zweit<img src='".$bild_array[$i]."' width='368' height='383' alt='Grafik'></td></tr>";
                }
                
    $gerade++;  
              }
              else {
    $c++;}
              
    $i++;
            }while(
    $i $seite*$eintraege_pro_seite+$c && $i $anzahl +$c);
            
    closedir($dh);
            
            
    //Ausgabe der Seitenlinks:
    echo "<div align=\"center\">";
    echo 
    "<b>Seite:</b> ";


    //Ausgabe der Links zu den Seiten
    for($a=0$a $wieviel_seiten$a++)
       {
       
    $b $a 1;

       
    //Wenn der User sich auf dieser Seite befindet, keinen Link ausgeben
       
    if($seite == $b)
          {
          echo 
    "  <b>$b</b> ";
          }

       
    //Aus dieser Seite ist der User nicht, also einen Link ausgeben
       
    else
          {
          echo 
    "  <a href=\"?seite=$b?index=$c\">$b</a> ";
          }


       }
    echo 
    "</div>"
        
    ?>
      </body>
    </html>

  • #2
    Zitat von sea-kay Beitrag anzeigen
    Bei jeder Datei die kein Bild ist, wird die gewünschte Anzahl um 1 erhöht, um wirklich 6 Bilder anzuzeigen.
    Wenn du auf der ersten Seite bspw. 10 Einträge durchlaufen hast, um 6 Bilder zu finden - dann darfst du auf der zweiten Seite natürlich erst ab dem 11. Eintrag anfangen, weiter zu suchen.

    Entweder übergibst du also auch noch einen Offset, an dem die Suche gestartet wird, oder du durchläufst das ganze komplett von vorne - oder du baust dir dein Daten-Array gleich so auf, dass es nur Bilder enthält.
    [SIZE="1"]RGB is totally confusing - I mean, at least #C0FFEE should be brown, right?[/SIZE]

    Kommentar


    • #3
      Eine Datenbank würde, denke ich, eine Galerie zu bau'n wesentlich erleichtern.
      Aber jedem das seine^^
      MfG
      ~Capfly

      Kommentar


      • #4
        Ich hatte erst überlegt, den Index mit zu übergebn. Also dem Stand des letzten Bildes, aber das funktioniert dann ja nur wenn ich von Seite 1 auf 2 oder von 2 auf 3 gehe.
        Von 1 auf 3 oder 3 auf 1 wird das dann ja nix.

        Kommentar


        • #5
          Wieso?
          Machste einfach +x welche Seite dann halt?!
          MfG
          ~Capfly

          Kommentar

          Lädt...
          X