Thomas: 4 in einer Reihe

Hallo zusammen,

Ich baue mir wieder einmal ein Gallerie Script und bin auf ein Problem gestossen. Ich lese mit einem PHP Script alle Bilder in einem Ordner aus und zeige diese. Das klappt auch alles Perfekt, doch nun möchte ich immer 4 Bilder in einer Reihe haben. HAbe mich mal ein bisschen rumprobiert, doch ich habe keine Idee wie ich das realisieren soll.

Irgendwie mit Schleifen?

Vielen Dank im voraus.....

Thomas

  1. Lieber Thomas,

    Ich lese mit einem PHP Script alle Bilder in einem Ordner aus

    hat nichts mit

    nun möchte ich immer 4 Bilder in einer Reihe haben.

    zu tun!

    Das erste hat damit zu tun, dass Du Daten sammelst und sie in irgendeiner Form in einer HTML-Struktur abbildest.

    Das zweite hat damit zu tun, wie Du eine HTML-Struktur optisch gestaltest. Dieser zweite Schritt wird nicht mit PHP, sondern mit CSS gemacht.

    Übrigens: Bildergalerien sehen bei mir in etwa so aus.

    Liebe Grüße aus Ellwangen,

    Felix Riesterer.

    --
    ie:% br:> fl:| va:) ls:[ fo:) rl:° n4:? de:> ss:| ch:? js:) mo:} zu:)
  2. echo $begrüßung;

    [...] doch nun möchte ich immer 4 Bilder in einer Reihe haben.

    Wenn du dir die Zahlen von 1 bis x in Bezug auf die 4 anschaust, wirst du feststellen, dass jede 4. Zahl durch 4 ohne Rest teilbar ist. Den Rest ermittelt der Modulo-Operaor %.

    Alternativ kannst du auch die Lösung mit CSS erstellen, wenn die Bilder die gleiche Breite haben. Setze alle Bilder in eine Reihe und den Container 4 Bilder breit. Den Rest macht der Browser.

    echo "$verabschiedung $name";

  3. Hallo Thomas,

    Ich lese mit einem PHP Script alle Bilder in einem Ordner aus und zeige diese.

    Das klappt auch alles Perfekt, doch nun möchte ich immer 4 Bilder in einer Reihe haben. HAbe mich mal ein bisschen rumprobiert,

    und bitte was?

    doch ich habe keine Idee wie ich das realisieren soll.
    Irgendwie mit Schleifen?

    Eine Schleife reicht. Der Modulo-Operator hilft; 'ne Archivsuche auch ...

    Freundliche Grüße

    Vinzenz

    1. Hallo,

      Danke erstmals.

      Also statisch funktioniert es schonmal.

        
      for($ii=1; $ii<=4; $ii++)  
      {  
      for($i=1; $i<=4; $i++)  
      {  
      echo "Das ist das Bild";  
      }  
      echo "<br>";  
      }  
      
      

      Aber wenn ich per readdir ein Ordner ausles kommen die Daten ja in einer while Schlaufe dazu.

      Wie kann ich das lösen?

      Lg

      1. Hallo,

        habe nun weiter versucht und es gelingt mir leider immer noch nicht.

        Mein Script sieht mittlerweile so aus.

          
        <?php  
        $i = "1";  
        $ordner = "galerie";  
        $path = "$ordner";  
        if(is_dir($path))  
        {  
        $handle = opendir($path);  
        while ($file = readdir ($handle))  
        {  
         for($ii=1; $ii<=4; $ii++)  
         {  
          while($i<=4)  
          {  
          
            $compl = $path."/".$file;  
               if($file != "." && $file != "..")  
            {  
          
            echo "$file";  
            }  
          $i++;  
          }  
        echo "<br />";  
         }  
        }  
        }  
        ?>  
        
        

        Das einzige was ausgegeben wird sind unzählige Zeilenumbrüche.

        Liebe Grüsse

        1. Hi!

          Also die einfachste Möglichkeit die mir spontan einfällt wäre mit ner zusätzlichen Variable, die bis 4 zählt und dann auf 1 runtergeht:

          $ZusatzVar = 1;
          $handle = opendir($path);
          while ($file = readdir ($handle))
          {

          echo $file;

          if ($ZusatzVar == 4) {

          echo "<BR>";
          $ZusatzVar = 1;

          } else {

          $ZusatzVar = $ZusatzVar + 1;

          }

          }

          Vielleicht hilft es dir ja weiter...

          1. Jungs,

            Also die einfachste Möglichkeit die mir spontan einfällt wäre mit ner zusätzlichen Variable, die bis 4 zählt und dann auf 1 runtergeht:

            wie von dedlfix und mir bereits erwähnt und von mir verlinkt, gibt es den Modulo-Operator. Damit kann man sich das viel einfacher machen.

            dedlfix' Vorschlag mit dem vier Bild breiten Container ist natürlich noch viel einfacher, gleichbreite Bilder vorausgesetzt.

            Aber zurück zur Fingerübung in Programmieren:
            Möchte man bei jedem x-te Schleifendurchgang etwas erledigen, dann bietet sich der Modulo-Operator an. Irgendwelche Hilfsschleifen läßt man außen vor. Die braucht man nicht. Warum habe ich ein Beispiel in Pseudocode verlinkt? Damit man die prinzipielle Vorgehensweise verstehen - und anschließend anwenden kann.

            Freundliche Grüße

            Vinzenz