Sie können das while
nicht in ein for
konvertieren.
for
Schleifen werden für inkrementelle Schleifen verwendet. while
Schleifen werden zum Ausführen von Code verwendet, bis eine Bedingung false
lautet. Während die meisten for
Schleifen können einfach in while
Schleifen (for
Schleifen sind nur eine syntaktische Erweiterungen von while
Schleifen) konvertiert werden, ist das Gegenteil nicht immer möglich.
Betrachten Sie die folgende Schleife:
while($row = pg_fetch_row($result)) { }
Diese Schleife wird ausgeführt, bis pg_fetch_row()
eine falsy value zurückgibt.
Hinweis: Die richtige Syntax für eine solche Schleife wäre:
while(($row = pg_fetch_row($result)) !== FALSE) { }
Leider ist die nächstgelegene Sie mit einer for
Schleife kommen kann, ist die folgende:
for(; $row = pg_fetch_row($result) ;) {}
Die sich genauso verhalten wie die while
Schleife sowieso.
Hinweis: Auch hier ist die richtige Syntax für eine solche Schleife wäre:
for(; ($row = pg_fetch_row($result)) !== FALSE ;) { }
Ich denke, Sie sollten in Ihrem Code zurück und finden Sie genau die Ursache des Problems anstatt die Verwendung der while
Schleife zu beschuldigen.
pg_fetch_row()
gibt ein Array von Spalten zurück, so dass Sie count()
nicht darauf verwenden können.
Die nächstgelegene Sie mit einer for
Schleife kommen würde mit pg_num_rows
als solche:
for($i = 0; $i < pg_num_rows($result); $i++) {
$row = pg_fetch_row($result);
}
Aber ich persönlich finde, dass unnötig ausführlich und offen für weitere Probleme.
Der Fehler fehlt nicht) in Ihrer while-Anweisung, oder? –
Welche Art von Problemen haben Sie mit der While-Schleife? – outis
Vielen Dank für Ihre Antworten! –