Bilder aus ordner auslesen !! Problem mit ausgabe !!
lima-city → Forum → Programmiersprachen → PHP, MySQL & .htaccess
album
anzeigen
beginnen
beitrag
bild
deswegen
durchaus
einfachsten glaube
nebeneinander
ordner
schleifen
sinnen
tabelle
variable
variant
versuchen
verzeichnis
zeile
-
High leutz
Ich wusste nicht wie ich das thema nennen sollte.. hoffe habs halbwegs getroffen.
Aaaaaaaaaaaaaalso ich m?chte alle Bilder aus einem Ordner auslesen und dann ausgeben lassen. Ich m?chte jedoch immernur 4 nebeneinander ausgeben lassen und den rest darunter.
also z.B.
1 2 3 4
5 6 7 8
Hier mein Code:
$albumname = $_GET['album']; $pfad = "Alben/".$albumname; $open_dir = opendir($pfad); echo "<table border='0' width='300'><tr>"; while($pic = readdir($open_dir)) { if(is_file($pfad."/".$pic)) { echo "<td><a href='index.php?shot=diashow&album=".$albumname."&pic=".$pic."'><img src='".$pfad."/".$pic."' width='50' height='50' border='0'></a></td>"; } } echo "</tr></table>"; $close_dir = closedir($open_dir);
Hoffe ihr k?nnt mir fix helfen.. Thx im vorraus -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
Hi,
du musst nach jedem vierten Bild einfach die n?chste Zeile beginnen.
Das geht am besten mit einer for-Schleife und Modulo (%).
Alles klar?
mfg,
hr
Ich w?rde hier einfach in die while-Schleife eine zus?tzliche Variable $x einbringen, denn das Auslesen des Verzeichnisses mit der while-Schleife macht durchaus Sinn. Also quasi so:
$albumname = $_GET['album']; $pfad = "Alben/".$albumname; $open_dir = opendir($pfad); echo "<table border='0' width='300'><tr>"; $x = 0; while($pic = readdir($open_dir)) { if(is_file($pfad."/".$pic)) { $x++; echo "<td><a href='index.php?shot=diashow&album=".$albumname."&pic=".$pic."'><img src='".$pfad."/".$pic."' width='50' height='50' border='0'></a></td>"; if ($x%4 == 0) { echo '</tr><tr>'; } } } echo "</tr></table>"; $close_dir = closedir($open_dir);
-
Hi,
leider geht das nicht wirklich, da ja nicht immer "bilderanzahl % 4 == 0" gilt.
Deswegen m?sste man noch leere <td>-Zellen anzeigen.
Vielleicht w?re das eine praktische L?sung:
$images = array(); // Der array mit den Bildern $bpl = 4; // Bilder pro Linie print '<table border="1" cellspacing="0" cellpadding="4">'; for ($i = 0; $i < round(count($images) / $bpl) * $bpl; $i++) { if ($i % $bpl == 0) print '<tr>'; if ($i < count($images) - 1) { print '<td><img src="' . $images[$i] . '"></td>'; } else { print '<td> </td>'; } if ($i % $bpl == $bpl) print '</tr>'; } print '</table>';
... so wird die Tabelle richtig und am einfachsten (glaube ich ) erstellt.
Hier w?re eine Variante mit while oder foreach komplizierter.
mfg,
hr
Beitrag ge?ndert am 25.07.2006 20:36 von heavyraptor -
[...] da ja nicht immer "bilderanzahl % 4 == 0" gilt.
Richtig, denn er will ja auch nur nach jedem 4. Bild eine neue Zeile.
heavyraptor schrieb:
Hier w?re eine Variante mit while oder foreach komplizierter.
Eben nicht, denn bei der Variante for-Schleife m?ssen zuvor alle Bilder in ein Array eingeben werden. Mit der while-Schleife wird das Verzeichnis nach den Bildern durchsucht. -
Hi,
[...] da ja nicht immer "bilderanzahl % 4 == 0" gilt.
Richtig, denn er will ja auch nur nach jedem 4. Bild eine neue Zeile.
Ja, aber dann werden die leeren <td>s nicht angezeigt.
heavyraptor schrieb:
Hier w?re eine Variante mit while oder foreach komplizierter.
Eben nicht, denn bei der Variante for-Schleife m?ssen zuvor alle Bilder in ein Array eingeben werden. Mit der while-Schleife wird das Verzeichnis nach den Bildern durchsucht.
Ja, das stimmt, aber nur wenn man es gleich beim Ordnerlesen anzeigt. ;)
mfg,
hr -
[...] da ja nicht immer "bilderanzahl % 4 == 0" gilt.
Richtig, denn er will ja auch nur nach jedem 4. Bild eine neue Zeile.
Ja, aber dann werden die leeren <td>s nicht angezeigt.
Stimmt, hab ich nicht ber?cksichtigt. Also noch ein Versuch meinerseits:
$albumname = $_GET['album']; $pfad = "Alben/".$albumname; $open_dir = opendir($pfad); echo "<table border='0' width='300'><tr>"; $x = 0; while($pic = readdir($open_dir)) { if(is_file($pfad."/".$pic)) { if ($x%4 == 0 && $x != 0) { echo '</tr><tr>'; } echo "<td><a href='index.php?shot=diashow&album=".$albumname."&pic=".$pic."'><img src='".$pfad."/".$pic."' width='50' height='50' border='0'></a></td>"; $x++; } } if ($x%4 != 0) { for ($y=0;$y<(4-($x%4));$y++) { echo '<td> </td>'; } } echo "</tr></table>"; $close_dir = closedir($open_dir);
Beitrag ge?ndert am 25.07.2006 21:09 von sandrock-jonas -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage