Chris Ross: while(dynamisch) - Wie?

Beitrag lesen

Hallo Forum,

ich möchte die Anweisung in den while-Klammern dynamisch zuweisen, weil ich einmal eine Datenbankanfrage, oder aber ein Array als Datenquelle durchlaufen möchte. Ähnlich so:

if(test == 1) { // Array als Datenquelle
 $schleife = "list($key, $data) = each ($daten)";
}
else { // Hole Daten aus Datenbank
 $schleife = "$data = $site_db->fetch_array($sql)";
}
while($schleife) {
viele Befehle
}

somit müsste die while-anweisung einmal: while( list($key, $data) = each ($daten) ) {
oder aber: while( $data = $site_db->fetch_array($sql) ) {
lauten.

Diese Möglichkeiten funktionieren nicht, weil - so nehme ich an - es sich um einen String handelt, der eingefügt werden soll und somit der Typ nicht stimmt, der erforderlich ist um in den while-klammer stehen zu können.

Ich weiß, das einfachste wäre wohl, die zu verarbeiteten Befehle innerhalb der Schleife einmal per while und einmal per foreach abzuarbeiten. Das möchte ich aber im Grunde nicht, denn das bedeutet doppelter Quellcode, der imho nicht nötig ist.

Hat jemand ne Idee zu meinem Vorhaben? Würde mich freuen, wenn mir mal kurz jemand aufs Pferd helfen könnte.

Mit freundlichen Grüßen
Chris