WebWork Magazin - Webseiten erstellen lassen, Online Medien, html

Webhoster, Webhosting Provider und Domain registrieren

Home | Registrieren | Einloggen | Suchen | Aktuelles | GSL-Webservice | Suleitec Webhosting
Reparatur-Forum | Elektro forum | Ersatzteilshop Haushalt und Elektronik


Homepage und Webhosting-Forum

Scripte und Programme für PHP, MYSQL. Diskussionen zur Programmierung im Web. Fragen zu CMS, Blogsoftware, Shops, Newsletter und vielen weiteren Scripten.


Forum » PHP & MySQL » Ausgabe: PHP & MySQL Bildergalerie » Antworten
Benutzername:
Passwort: Passwort vergessen?
Inhalt der Nachricht: Fett | Kursiv | Unterstrichen | Link | Bild | Smiley | Zitat | Zentriert | Quellcode| Kleiner Text
Optionen: Emailbenachrichtigung bei Antworten
 

Ausgabe: PHP & MySQL Bildergalerie
von a-man
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....
von schmchris
@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.
von Xenon
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.)

von schmchris
Soll ich die

}

auch noch kommentieren ?
von alexhaid
von schmchris
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;
}
}
von alexhaid
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
von schmchris
Sorry das ich helfen wollte

Wollte nur schnell ein kurzes leicht verständliches Beispiel bringen.
von alexhaid
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
von languitar
man kann das auch mit 2 verschatelten for-schleifen machen: http://www.webwork-community.net/posting2584_23_0.html (mein Script)
von schmchris
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.
von alexhaid
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
von a-man
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>
von bigvillain
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

Nach oben