PHP-Einsteigerproblem: Bildergalerie klappt nicht

  • #1
S

Steve77-1

Guest
Hallo!

Ich lerne gerade erst PHP und habe mich lehrbuchunabhängig mal an eine eigene, sehr einfache Bildergalerie gewagt, in der aber leider irgendwo ein Haken ist.

Die Galerie basiert z.Zt. auf folgenden Grundlagen:
- die Bilderanzahl lege ich über die Variable $anzahl fest
- ausgegeben sollen die Bilder in einer Tabelle mit je 4 Reihen und 3 Spalten
- zu jedem Bild gibt es eine Thumb-Datei (_t) und eine normale, die Dateien sind von 1.jpg bis ??.jpg durchnummeriert, wodurch ich ja eigentlich mit nem schlichten $i++ weiterkommen müßte, oder?

Hier mein Versuch:

Code:
<html>
<head>
<title>Titel</title>
</head>
<body>
<table width=660 cellpadding=2 cellspacing=2 border=1 bordercolor=#FFFFFF>
<?php
	$anzahl = 12;                  // Anzahl der Bilddateien
	for ($i = 1; $i <= $anzahl; $i++)
	{
	for ($r = 1; $r <= 4; $r++)   // 4 Reihen sollen aufgebaut werden
	{
	echo 	<tr>\n;
	for ($s = 1; $s <=3; $s++)   // mit je 3 Spalten
	         {
	         echo           <td width=\220\ height=\170\ align=\center\ valign=\middle\>;
	         echo <a href=\http://www.bildquelle.de/pics/$i.jpg\><img src=\http://www.bildquelle.de/pics/$i_t.jpg\ width=\200\ border=\0\></a>;
	         echo </td>\n;
	         }
	echo 	</tr>\n;
	}
?>
</table>
</body>
</html>

Wo ist der Haken?

Ideal wäre es natürlich, wenn ich das Script nicht immer im Hinblick auf die Bilderanzahl anpassen müßte, sondern es automatisch ausgelesen werden könnte und es sich auch zeilenmäßig automatisch anpasst. Vorgabe sollen nur die 3 Thumbs je Reihe sein, die ich jedoch nicht über PHP generieren brauche, da sie bereits als fertige Grafiken vorliegen.

Schwachstelle #2 ergibt sich bei einer Dateianzahl, die nicht durch 3 teilbar ist: Bei nur 10 Grafiken hätte ich z.B. 2 rote x am Ende. Ich vermute mal, daß man hier eine Schleife mit der Modulo-Funktion basteln kann, aber wie!?

Es wäre super, wenn mir da wer weiterhelfen könnte. Für geübte PHPler ist dies vermutlich ein banales Problem, aber als Einsteiger, der bisher nur fit in HTML/CSS ist, muß man sich erst richtig reindenken können...

Danke im Voraus!!

Steve
 
  • #2
Hast Du das schon mal getestet?
Du schachtelst hier drei Schleifen. Auf den ersten Blick würde sagen, Du baust Dir eine Tabelle mit 12 * 4 Reihen * 3 Spalten auf.
IMHO wäre es besser, die äussere Schleife wegzulasen und dafür in der inneren mit einer Zählvariablen zu arbeiten.
Also so etwas
Code:
<?php
$anzahl = 12;         // Anzahl der Bilddateien
$i = 0;               //Zähler
for ($r = 1; $r <= 4; $r++)  // 4 Reihen sollen aufgebaut werden
{
echo  <tr>\n;
for ($s = 1; $s <=3; $s++)  // mit je 3 Spalten
     {
     $i = $i + 1;
     echo      <td width=\220\ height=\170\ align=\center\ valign=\middle\>;
     echo <a href=\http://www.bildquelle.de/pics/$i.jpg\><img src=\http://www.bildquelle.de/pics/$i_t.jpg\ width=\200\ border=\0\></a>;
     echo </td>\n;
     }
echo  </tr>\n;
}
?>
Wenn mich nicht alles täuscht, fehlen bei Deinem Beispiel auch noch schliessende Klammern.

Eddie
 
  • #3
Schau dir mal dies an:


gruss conny

Nachtrag:

Dein Bsp. würde ich allerdings so gestalten.
Code:
<html>
<head>
<title>Titel</title>
</head>
<body>
<table width=660 cellpadding=2 cellspacing=2 border=1 bordercolor=#FFFFFF>
 <tr>
<?php
$anzahl = 12;         // Anzahl der Bilddateien
for ($i = 0; $i < $anzahl; $i++) {
	if($i % 3 == 0) echo </tr><tr>;
	echo <td width=\220\ height=\170\ align=\center\ valign=\middle\>
		  <a href=\http://www.bildquelle.de/pics/$i.jpg\><img src=\http://www.bildquelle.de/pics/$i_t.jpg\ width=\200\ border=\0\></a>
		 </td>\n;
}
?>
 </tr>
</table>
</body>
</html>
 
Thema:

PHP-Einsteigerproblem: Bildergalerie klappt nicht

ANGEBOTE & SPONSOREN

Statistik des Forums

Themen
113.840
Beiträge
707.963
Mitglieder
51.494
Neuestes Mitglied
Flensburg45
Oben