while -> mysql_assoc
am 03.02.2006 03:13:53 von Sandro Paetzold
Hey NG,
ich versuche über eine while-schleife bestimmte Daten auslesen zulasen,
das Problem liegt jedoch darin das nur der erste Datensatz genommen wird
und dieser in einer Endlosschleife ausgegeben wird.
[PHP]
$query = "SELECT kdnr, kd_name FROM kunde WHERE office = '$office'
AND bs = '$bs'";
while($erg = dbassoc($query)) {
echo $erg['kdnr'].", ".$erg['kd_name']."
";
}
[/PHP]
[DB]
kdnr | kd_name
001 | Test1
002 | Test2
003 | Test3
[/DB]
[AUSGABE]
001, Test1
001, Test1
...
[/AUSGABE]
Theoretisch gesehen sollten ja alle drei Sätze ausgegeben werden, aber
es wird eben nur
diese Endlosschleife des ersten Satzes ausgegeben.
Wo liegt mein Fehler?
Technische Daten:
WinXP SP2
Apache 2
PHP 4.2
MySQL 4.1
Vielen Dank
Sandro Paetzold
Re: while -> mysql_assoc
am 03.02.2006 04:27:40 von Niels Braczek
Sandro Paetzold schrieb:
> ich versuche über eine while-schleife bestimmte Daten auslesen zulasen,
> das Problem liegt jedoch darin das nur der erste Datensatz genommen wird
> und dieser in einer Endlosschleife ausgegeben wird.
>
> [PHP]
> $query = "SELECT kdnr, kd_name FROM kunde WHERE office = '$office'
> AND bs = '$bs'";
> while($erg = dbassoc($query)) {
> echo $erg['kdnr'].", ".$erg['kd_name']."
";
> }
> [/PHP]
Du solltest die Abfrage vielleicht auch ausführen.
$query = "SELECT kdnr, kd_name
FROM kunde
WHERE office = '$office'
AND bs = '$bs'";
$result = mysql_query($query) or die($query.'
'.mysql_error());
while($row = mysql_fetch_assoc($result)) {
echo $row['kdnr'], ', ', $row['kd_name'], '
';
}
> Theoretisch gesehen sollten ja alle drei Sätze ausgegeben werden, aber
> es wird eben nur
> diese Endlosschleife des ersten Satzes ausgegeben.
> Wo liegt mein Fehler?
Offensichtlich setzt dein dbassoc() die Abfrage an das DBMS ab und holt
den ersten Datensatz - immer wieder. Die Abfrage darf natürlich nur
einmal abgesetzt werden.
MfG
Niels
--
| http://www.kolleg.de · Das Portal der Kollegs in Deutschland |
| http://www.bsds.de · BSDS Braczek Software- und DatenSysteme |
| Webdesign · Webhosting · E-Commerce · Mambo Content Management |
------------------------------------------------------------ ----
Re: while -> mysql_assoc
am 03.02.2006 14:39:20 von Sandro Paetzold
> Du solltest die Abfrage vielleicht auch ausführen.
>
> $query = "SELECT kdnr, kd_name
> FROM kunde
> WHERE office = '$office'
> AND bs = '$bs'";
>
> $result = mysql_query($query) or die($query.'
'.mysql_error());
> while($row = mysql_fetch_assoc($result)) {
> echo $row['kdnr'], ', ', $row['kd_name'], '
';
> }
> Offensichtlich setzt dein dbassoc() die Abfrage an das DBMS ab und holt
> den ersten Datensatz - immer wieder. Die Abfrage darf natürlich nur
> einmal abgesetzt werden.
Mist, meine dbassoc sieht folgendermasen aus:
function dbassoc($query) {
echo mysql_fetch_assoc(mysql_query($query))
}
Kein wunder das es ne endlosschleife gibt wenn ich jedesmal
den Query wieder mit absetze!
Vielen Dank.
LG Sandro
Re: while -> mysql_assoc
am 03.02.2006 16:50:55 von Helmut Schmuckermair
> Mist, meine dbassoc sieht folgendermasen aus:
> function dbassoc($query) {
> echo mysql_fetch_assoc(mysql_query($query))
> }
> Kein wunder das es ne endlosschleife gibt wenn ich jedesmal
> den Query wieder mit absetze!
...ausserdem würd ich in eine Funktion kein 'echo' einbauen, sondern ein
'return'.
Grüsse
Helmut