while ein DS weniger
Andy
- php
0 Vinzenz Mai0 Andy
Hallo,
meine Abfrage
$query_erg = "SELECT bezeichnung FROM namen";
$erg= @mysql_query($query_erg)or die("Abfrage fehlgeschlagen");
$row_erg = mysql_fetch_assoc($erg);
$totalRows_erg = mysql_num_rows($erg);
meine Schleife
while ($row_erg = mysql_fetch_assoc($erg)){
echo $row_erg['fremd_bez'].'<br>';
}
gibt mir einen Datensatz weniger zurück als ich brauche, weil ich
$row_erg = mysql_fetch_assoc($erg); schon angegeben habe.
Wäre in dem Falle eine do/while die Lösung?
Was spricht dagegen?
Danke
Andy
Hallo Andy,
gibt mir einen Datensatz weniger zurück als ich brauche, weil ich
$row_erg = mysql_fetch_assoc($erg); schon angegeben habe.
Wäre in dem Falle eine do/while die Lösung?
nicht unbedingt.
Was spricht dagegen?
Was spricht dagegen, den ersten mysql_fetch_assoc()-Aufruf einfach wegzulassen?
Freundliche Grüße
Vinzenz
Was spricht dagegen, den ersten mysql_fetch_assoc()-Aufruf einfach wegzulassen?
Hallo Vinzenz,
in diesem Falle nicht, ich habe mir das eigentlich nur so angewöhnt, da ich manchmal Abfrageergebnisse auch ohne Do/while nutzen musste.
Dann war der erste mysql_fetch_assoc()-Aufruf eben immer da und ich musste nicht nachdenken habe ich oder nicht.
Allerdings habe ich immer do/while benutzt.
Ich weiß nicht, was soll man (wann) nehmen und warum.
while($row_erg = mysql_fetch_assoc($erg)) {
....
}
oder
do {
...
}while($row_erg = mysql_fetch_assoc($erg));
Vielen Dank
Andy
Hallo,
Was spricht dagegen, den ersten mysql_fetch_assoc()-Aufruf einfach wegzulassen?
in diesem Falle nicht, ich habe mir das eigentlich nur so angewöhnt, da ich manchmal Abfrageergebnisse auch ohne Do/while nutzen musste.
Dann war der erste mysql_fetch_assoc()-Aufruf eben immer da und ich musste nicht nachdenken habe ich oder nicht.
ach ja. Das ist eine schlechte Idee.
Ich weiß nicht, was soll man (wann) nehmen und warum.
while($row_erg = mysql_fetch_assoc($erg)) {
....
}
Da Abfragen stets eine leere Menge zurückliefern können, ohne dass dies einen Fehler darstellt, ist bei der Verarbeitung von Abfrageergebnissen die while-Schleife sinnvoll - und do-while mit unnötigem zusätzlichen Aufwand verbunden.
Solange es Datensätze gibt
Verarbeite diese Datensätze
Ende Solange
Freundliche Grüße
Vinzenz
Moin!
Ich weiß nicht, was soll man (wann) nehmen und warum.
Das ergibt sich aus der Logik der Aufgabe.
while($row_erg = mysql_fetch_assoc($erg)) {
....
}
Wenn du innerhalb der Schleife das DB-Ergebnis verarbeiten willst, das im while-Statement abgefragt wird, bietet sich diese Schleife an.
> oder
>
> ~~~php
do {
> ...
> }while($row_erg = mysql_fetch_assoc($erg));
Wenn du in der Schleife etwas tun willst, und am Ende wird das DB-Ergebnis abgefragt (und steht ggf. im nächsten Schleifendurchlauf zur Verfügung), wäre diese Schleife angesagt.
Da es aber allgemein unsinnig ist, bei einer Datenbankabfrage zuerst etwas zu tun und dann erst die Datenbank abzufragen, weil man in der Regel das Abfrageergebnis innerhalb der Schleife verarbeiten will, ist es üblich, die while-Schleife ganz oben zu verwenden.
Du tust dir keinen Gefallen, wenn du das anders machst.
- Sven Rautenberg