Home | Registrieren | Einloggen | Suchen | Aktuelles


Forum » PHP & MySQL » Ausgabe: PHP & MySQL Bildergalerie Antworten
Ausgabe: PHP & MySQL Bildergalerie

bigvillain
Pixelschubser


Beiträge: 4


Hallo,
ich bin gerade bei der Ausgabe meiner PHP und MySQL Bildergalerie. Das Problem ist, dass ich es nicht hinbekomme, dass in jeder Zeile einer Tabelle jeweils 3 Spalten ausgegeben werden.

Zum Beispiel so...
... für 7 Einträgen (Bilder) in der Datenbank.

1: 
2: 
3: 
4: 
5: 
6: 
7: 
8: 
9: 
10: 
11: 
12: 
13: 
14: 
15:
<table width="0" border="1">
  <tr>
    <td>BILD</td>
    <td>BILD</td>
    <td>BILD</td>
  </tr>
  <tr>
    <td>BILD</td>
    <td>BILD</td>
    <td>BILD</td>
  </tr>
  <tr>
    <td>BILD</td>
  </tr>
</table>



... für 11 Einträge (Bilder) in der Datenbank.

1: 
2: 
3: 
4: 
5: 
6: 
7: 
8: 
9: 
10: 
11: 
12: 
13: 
14: 
15: 
16: 
17: 
18: 
19: 
20: 
21:
<table width="0" border="1">
  <tr>
    <td>BILD</td>
    <td>BILD</td>
    <td>BILD</td>
  </tr>
  <tr>
    <td>BILD</td>
    <td>BILD</td>
    <td>BILD</td>
  </tr>
  <tr>
    <td>BILD</td>
    <td>BILD</td>
    <td>BILD</td>
  </tr>
  <tr>
    <td>BILD</td>
    <td>BILD</td>
  </tr>
</table>



Ich hoffe man versteht einigermaßen was ich meine.
Wäre euch sehr verbunden, wenn Ihr mir bei dem Problem helft.

Gruß Bigvillain

  Profil   Editieren   Zitieren

a-man
Mausakrobat


Beiträge: 157


Reicht ein Codeschnipsel?

1: 
2: 
3: 
4: 
5: 
6: 
7: 
8: 
9: 
10: 
11: 
12: 
13: 
14: 
15: 
16: 
17: 
18: 
19: 
20: 
21: 
22:
	<table cellspacing="10">
	<colgroup>
		<col width="50%">
		<col width="50%">
	</colgroup>
	<?PHP
	for ($x = 0; $x < mysql_num_rows($mysql_query); $x++) {
		echo "<tr>";
		echo '<td class="itable"><a href="index.php?site=funtext_text&funtextid='. mysql_result($mysql_query, $x, 0). '">'. mysql_result($mysql_query,$x, 1). '</a></td>';
		$x++;
		if ($x < mysql_num_rows($mysql_query)) {
			echo '<td class="itable"><a href="index.php?site=funtext_text&funtextid='. mysql_result($mysql_query, $x, 0). '">'. mysql_result($mysql_query,$x, 1). '</a></td>';
		}
		else {
			echo "<td>&nbsp;</td>";
		}
		echo "</tr>";
	}
	?>
	</table>


---
Debian ruult...
KDE ruult...
Opera ruult...

  Profil   Website   Editieren   Zitieren

alexhaid
Fachidiot


Beiträge: 132


Also mir ist dieses Codeschnipsel nicht einleutend. Ein paar Kommentare und Erklärungen wären sicherlich sehr hilfreich - vor allem für Anfänger.
alex

  Profil   E-Mail   Editieren   Zitieren

schmchris
Mausakrobat


Beiträge: 163


Einfach eine Variable hochzählen lassen :
$i = 1

while schleife
{
//Anzeige Bild
echo "<td><img src ....></td>";
$i++;
if($i=='3')
{
echo "</tr><tr>";
$i=1;
}
}

Ich hoffe das ist verständlich genung. Teil uns einfach kurz mit ob es funkioniert hat.

  Profil   Editieren   Zitieren

languitar
Foren-Team


Beiträge: 2795


man kann das auch mit 2 verschatelten for-schleifen machen: http://www.webwork-community.net/posting2584_23_0.html (mein Script)

---
Take a look here!
Lichtblick - Einblick - Ausblick

  Profil   E-Mail   Website   Editieren   Zitieren

alexhaid
Fachidiot


Beiträge: 132


Hi schmchris.

Mein Kommentar war eher an a-man gerichtet. Mir ist sein Codebeispiel nicht einleuchtend.. warum z.b. in Zeile 12 $x mit mysql_num_rows() verglichen wird?! Eine Laufzähler für eine variable Spaltenanzahl, nach der bigvillain gefragt hat, ist für mich nicht zu erkennen?!

Und es geht mir auch darum, dass Code kommentiert wird und nicht einfach so hingesch(m)issen wird

alex

Diese Nachricht wurde geändert von: alexhaid
  Profil   E-Mail   Editieren   Zitieren

schmchris
Mausakrobat


Beiträge: 163


Sorry das ich helfen wollte

Wollte nur schnell ein kurzes leicht verständliches Beispiel bringen.

  Profil   Editieren   Zitieren

alexhaid
Fachidiot


Beiträge: 132


Sorry das ich helfen wollte
Wollte nur schnell ein kurzes leicht verständliches Beispiel bringen.

Danke danke danke
Das war auch wiederum gar nicht gegen deine Hilfe. Und du hast ja auch ganz vorbildhaft einen Kommentar in deinem Beispiel eingebaut

alex

  Profil   E-Mail   Editieren   Zitieren

schmchris
Mausakrobat


Beiträge: 163


Guckst du unten Geil oder

Jeder Zeile Code muss normal eine Zeile Kommentar vorangehen.

Einfach eine Variable hochzählen lassen :
$i = 1

// Solange Bedingung erfuellt durchlaufe die Schleife
while schleife
{
// Anzeige Tabellenteil mit Bild
echo "<td><img src ....></td>";
// Erhoehe $i um 1
$i++;
// Wenn die Variable $i den Wert 3 enthaelt fuehre folgendes aus
if($i=='3')
{
// Neue Zeile beginnen
echo "</tr><tr>";
// Setze Variable wieder auf den Wert 1
$i=1;
}
}

  Profil   Editieren   Zitieren

alexhaid
Fachidiot


Beiträge: 132



  Profil   E-Mail   Editieren   Zitieren

schmchris
Mausakrobat


Beiträge: 163


Soll ich die

}

auch noch kommentieren ?

  Profil   Editieren   Zitieren

Xenon
Feiertags-Poster


Beiträge: 35


nur n tip:
in dem beispielen wird nicht darauf geachtet, dass die anzahl der spalten in jeder zeile gleich sein MUSS (oder mit colspan auf <td> vervollständigt).
einfach eine zweite schleife hinten anstellen, die für i<3 jeweils <td>&nbsp;<td> addiert und danach erst das schliessende <tr> (&nbsp; weil alte netscapes die hintergrundfarbe leerer spalten falsch darstellen).
wenn die struktur mit tr, td nicht exakt eingehalten wird, dann stellen manche browser nur schrott dar.

(ms- frontpage... ist da das beste beispiel für nen editor, der so n mist macht, da könnte man fast meinen, die machen es absichtlich *g.)


  Profil   E-Mail   Editieren   Zitieren

schmchris
Mausakrobat


Beiträge: 163


@Xenon: Du hast natürlich Recht, aber ich hab die Tabelle ja noch nicht geschlossen

Daher wäre das außerhalb meines Code Schnipsels anzuordnen - also hintendran.

  Profil   Editieren   Zitieren

a-man
Mausakrobat


Beiträge: 157


So, hab das jetzt auskommentiert...

ist zwar nicht die beste methode ( mysql_result() ), ich habs aber in meiner Seite so drinn (früher nicht gewusst) und bin zu faul zum ändern.
1: 
2: 
3: 
4: 
5: 
6: 
7: 
8: 
9: 
10: 
11: 
12: 
13: 
14: 
15: 
16: 
17: 
18: 
19:
<table>
<?PHP
for ($x = 0; $x < mysql_num_rows($mysql_query); $x++) {       //solange noch Datensätze zum ausgeben sind, muss man auch datensätze ausgeben1
echo "<tr>";                                                  // neue zeile
echo '<td><a href="index.php?funtextid='. mysql_result($mysql_query, $x, 0). '">'. mysql_result($mysql_query,$x, 1). '</a></td>';      // erstes feld
$x++;                                                         // $x wird erhöht, damit der nächste Datensatz ausgegeben wird
if ($x < mysql_num_rows($mysql_query)) {                      // wen es einen Datensatz mit der id = $x gibt, dann.... (muss nicht immer der Fall sein, zb
                                                              // wenn man 1,3,5,.... Datesätze hat)
echo '<td><a href="index.php?funtextid='. mysql_result($mysql_query, $x, 0). '">'. mysql_result($mysql_query,$x, 1). '</a></td>';      // zweites feld
}
else {                                                        // wenn kein Datensatz da ist, dann soll er eine leere Zelle ausgeben...
echo "<td>&nbsp;</td>";
}
echo "</tr>";                                                 // zeile ende
}
?>
</table>


hoffe, dass das jetzt verständlicher ist....

---
Debian ruult...
KDE ruult...
Opera ruult...

Diese Nachricht wurde geändert von: a-man
  Profil   Website   Editieren   Zitieren
 

Antworten
Nach oben