Probleme bei for-schleife

3dsmaxer

Erfahrenes Mitglied
hallo

Ich habe vor ein Gästebuch zu schreiben, aber irgendwie will das mit der for-Schleife zum Tabellenausgeben nicht klappen.

Ich denke es leigt, wie immer bei meinen Codes, an einer winzigen Kleinigkeit, die ich immer übersehe...

Folgendes habe ich gecoded:

PHP:
<?php 
$query	=	"SELECT * FROM gaestebuch ODER BY ID DESC";
	
	$ergebnis	=	mysql_query($query); 
	
	$anzahl	=	mysql_num_rows($ergebnis);

?>

[...]

<?php
for ( $i=1, $i <= $anzahl, $i++ )
{
	$fetch	=	mysql_fetch_array($ergebnis);

?>
<table width="691" border="1" class="formular">
  [......]
</table>
<?php }; ?>

Im Browser kommt: "Parse error: syntax error, unexpected ')', expecting ';' on line 47"
Line 47 ist "for ( $i=1, $i <= $anzahl, $i++ )"


Ich würde mich freuen, wenn es einer mal durchsehen könnte.

danke schonmal.
 
PHP:
<?php 
$query    =    "SELECT * FROM gaestebuch ODER BY ID DESC";
    
    $ergebnis    =    mysql_query($query); 
    
    $anzahl    =    mysql_num_rows($ergebnis);

?>

[...]

<?php
for ( $i=1, $i <= $anzahl, $i++ )
{
    $fetch    =    mysql_fetch_array($ergebnis);

?>
<table width="691" border="1" class="formular">
  [......]
</table>
<?php }; ?>
ich finde das ganz schön umständlich mit den num_rows.
Ich würde es so lösen :

PHP:
<?php 
$query    =    "SELECT * FROM gaestebuch ODER BY ID DESC";
$ergebnis    =    mysql_query($query); 
while($object = mysql_fetch_object($ergebnis)){ ?>
<table width="691" border="1" class="formular">
  [......]
</table>
<?php } ?>

Und dann geht er durch die Schleife so oft bis er keine Einträge mehr aus der DB zieht
 
Wieso giebst Du die Zeilen nicht einfach mit while() aus? Das ist doch viel einfacher, wenn Du nicht gerade abwechselnde Zeilenfarben für die bessere Übersicht verwenden willst.

-> while($fetch = mysql_fetch_assoc($ergebnis)){ ... }
 
danke für die Antworten.
Dachte nicht, dass es so einfach zu lösen ist....

Ich habe eure beiden Vorschläge probiert.

Bei beiden kommt die Browsermeldung:
"mysql_fetch_object(): supplied argument is not a valid MySQL result resource on line 47"
bzw.
"mysql_fetch_assoc(): supplied argument is not a valid MySQL result resource on line 47"
 
Ohne den Rest des Threads zu lesen wuerde ich sagen, dass es sich um einen Fehler im SQL-Query handelt.

Hab jetzt doch mal gescrollt und folgendes gefunden:
SQL:
SELECT * FROM gaestebuch ODER BY ID DESC
Das ODER ist dort falsch, es muss ORDER heissen.
 
och nöööö.
Ich wusste doch, dass es wiedermal an einer Kleinigkeit liegt.

also nun hab ich ORDER statt ODER drinne und es klappt.


Vielen Dank an alle
 
PHP:
for ( $i=1, $i <= $anzahl, $i++ ) 
{ [...]}

Die Schleife ist falsch!

PHP:
for ( $i=1; $i <= $anzahl; $i++ )

for-schleifen bestrehen aus 3 blöcken die mit ";" getrennt werden und nicht mit ","!
Für die syntax befindest du dich immernoch im ersten block :)
 
Zurück