Bilder werden nicht richtig geordnet

sasfed

Mitglied
Hallo,

ich bastel gerade an einem Skript das Bilder aus einem Ordner ausliest. Jetzt will ich die Bilder schön sortieren aber es klappt einfach nicht. Ich versuche das ganze in einer Tabelle zu machen und 4 Bilder pro eine Zeile zu machen. Allerdings gibt er mir nur 3 Bilder pro Zeile aus, macht ein Bild in die nächste und dann macht er wieder 3 rein. Könnt ihr mir vielleicht helfen? Wäre klasse!

Hier der Quellcode

PHP:
		   $test="images/partypics/".$verz;
			 $handle=opendir ("$test");
       echo "<table width=100%>";
			 $i=0;
			 
       while (false !== ($file = readdir ($handle))) 
		     {
				  if($i==0 || $i==4 || $i==8 || $i==12  || $i==16 || $i==20 || $i==24 || $i==28 || $i==32 || $i==36 || $i==40 || $i==44 || $i==48 || $i==52 || $i==56 || $i==60 || $i==64 || $i==68 || $i==72 || $i==76 || $i==80 || $i==84 || $i==88 || $i==92 || $i==96 || $i==100)
					 {
					  echo "<tr>";
					 }

						      echo "<td>";
							     echo "<a href=index.php?nav=pics&size=big&file=$file&verz=$verz><img src=$test/$file width=15% border=0></a>";
							    echo "</td>";


				  if($i==0 || $i==4 || $i==8 || $i==12 || $i==16 || $i==20 || $i==24 || $i==28 || $i==32 || $i==36 || $i==40 || $i==44 || $i==48 || $i==52 || $i==56 || $i==60 || $i==64 || $i==68 || $i==72 || $i==76 || $i==80 || $i==84 || $i==88 || $i==92 || $i==96 || $i==100)
					 {
					  echo "</tr>";
					 }
					 
					 $i++;
         }
		   echo "</table>";
		}

Und dann hab ich noch das Problem das die ersten 2 Bilder als Dateiname . und .. übergeben bekommen. Hat dafür vielleicht jemand eine Erklärung
 
Zwei Sachen, die ich verbessern würde, dann klappt's vielleicht:

1. Mach's doch so, dass du am Anfang ein <tr> ausgibst und am Ende ein </tr>. Dann kannst du die beiden Bedingungen in einer vereinen, in der du dann immer "</tr><tr>" ausgibst.

2. So, wie du das machst, ist das sehr unsauber programmiert. Sobald du mehr als hundert Bilder hast, musst du den Code von Hand ergänzen. Probier's mal mit [phpf]bcmod[/phpf].
 
Super Genau das wars Herzlichen Dank!

Und jetzt noch die Lösung zum zweiten Problem und ich bin glücklich. :-)
 
Zuletzt bearbeitet:
Das liegt daran, dass damit irgendwelche Ordner gemeint sind. (Äh... wie das genau läuft, weiss ich leider nicht, da müssen die Experten ran. :-() Verhindern kannst du das ganz einfach, indem du die if-Abfrage um diesen Code erweiterst:
PHP:
if (... && $file != '.' && $file != '..') {
    ...
}
 
Danke! ! Hab sowas schon vermutet da ja in manchen Programmen die höchste Ordnerebene mit einem Punkt und die darunterliegende mit 2 Punkten usw, verdeutlicht wird.
 
da ja in manchen Programmen die höchste Ordnerebene mit einem Punkt und die darunterliegende mit 2 Punkten usw, verdeutlicht wird.
"." und ".." sind Verzeichnisse, die in jedem Verzeichnis existieren, ausser in der obersten Ebene. Dort gibt es nur ".".
"." repräsentiert das aktuelle Verzeichnis, ".." die übergeordnete Verzeichnis-Ebene.

snuu
 
Zurück