whileschleife ohne aktion einmal weiterlaufen lassen?
backbone
- php
moinz folks,
keine frage an die php-fraktion.
wie kann ich eine while-schleife ohne die darin eingebaute funktion aufzurufen einmal weiterlaufen lassen. sprich zum nächsten durchgang zu gelangen? hier ein bsp:
while($mysql_inhalt = mysql_fetch_array($db){
echo"$mysql_inhalt[zeile1]";
}
wie kann ich nun eine "runde" weiterspringen ohne die anktion echo... auszugeben?
thx for help.
tschau
Huhu backbone
wie kann ich nun eine "runde" weiterspringen ohne die anktion echo... auszugeben?
Du suchst "continue".
Viele Grüße
lulu
moin lulu...
Du suchst "continue".
saubääär... jenau das brauchsch :D.
thx und tschau.
Heyho !
Nur eine kleine Notiz am Rande. Falls du häufiger mal eine Runde weiter springen willst, dann sei vorsichtig mit continue. Es kann unter Umständen eine Performance-Bremse werden. Benutz sonnst lieber ein if und "klammere" damit in dem Fall des Sprunges die echo-Anweisung aus.
Greetz David
moin!
»»Benutz sonnst lieber ein if und "klammere" damit in dem Fall des Sprunges die echo-Anweisung aus.
danke für den tipp. das habe ich ja gemacht (nur im bsp. nicht erwähnt) nur nach der ausgabe soll er nicht den aktuellen arraywert ausgeben sondern ihn überspringen.
tschau
danke für den tipp. das habe ich ja gemacht (nur im bsp. nicht erwähnt) nur nach der ausgabe soll er nicht den aktuellen arraywert ausgeben sondern ihn überspringen.
hey !
hmm ok aber nach dem die Schleife den nächsten durchlauf macht, hast du doch den nächsten Wert des Arrays... hmm kann sein das ich dich in dem Punkt noch nicht ganz verstehe. Aber ich werde dir gerne weiterhelfen wenn du mir etwas genauer sagt, was du genau machen willst.
David
moin
»»Aber ich werde dir gerne weiterhelfen wenn du mir etwas genauer sagt, was du genau machen willst.
okay, hier dsa problem in quelltextform!
while($RoomData = mysql_fetch_array($RoomDataQuery)){
if ($RoomData[rid]==$EditData[rid]) {
echo"<option value="$RoomData[rid]" label="" selected>$RoomData[name]</option>";
continue;
}
echo"<option value="$RoomData[rid]"label="">$RoomData[name]</option>";
}
er fragt die rid's zu den räumen aber und vergleicht dann ob die raum(rid) mit der raum-id aus ner anderen abfrage identisch ist. wenn ja dann gibt er das so aus wie dort zu sehen. mum nun nicht noch die rid-daten aus abfrage 1 auszugeben wollt ichs mit continue überspringen. vielleicht hast ja ne bessere lösung.
tschau
Also ich würde folgendes Schreiben:
while($RoomData = mysql_fetch_array($RoomDataQuery)){
if ($RoomData[rid]==$EditData[rid]) {
echo "<option value="$RoomData[rid]" label="" selected>$RoomData[name]</option>";
} else
echo "<option value="$RoomData[rid]"label="">$RoomData[name]</option>";
}
}
Was meinste dazu?
aloha nochmal.
Was meinste dazu?
saubäääre lööösung. scheint wohl mein problem zu sein: die dinge immer zu verkomplizieren ;).
besten dank.
tschau
Huhu backbone
noch eine kleine Anmerkung
echo"$mysql_inhalt[zeile1]";
das kann so eigentlich nicht funktionieren, vermutlich weil es nur als Beispiel gedacht war und kein "richtiger" Code ist?
Es müsste
echo "{$mysql_inhalt['zeile1']}";
bzw.
echo $mysql_inhalt['zeile1'];
lauten.
wie kann ich nun eine "runde" weiterspringen ohne die anktion echo... auszugeben?
Wenn Du nur bestimmte Werte der Spalte "zeile1" anzeigen möchtest wäre diese Eingrenzung sicherlich besser direkt im SQL aufgehoben.
Viele Grüße
lulu
Hallo,
echo"$mysql_inhalt[zeile1]";
das kann so eigentlich nicht funktionieren [...]
Es müsste
echo "{$mysql_inhalt['zeile1']}";
bzw.
echo $mysql_inhalt['zeile1'];
lauten.
Nein. Auch das oberste Beispiel (von backbone) ist voellig korrekt.
(Deine beiden natuerlich auch.)
Du hast reflexartig an das gedacht:
Warum ist $foo[bar] falsch?
http://www.php.net/manual/de/language.types.array.php#language.types.array.foo-bar
Die Vorschrift, dass der (String-)Schluessel eines assoziativen
Arrays in Anfuehrungszeichen stehen muss, hat eine wichtige Ausnahme;
innerhalb von doppelten Anfuehrungszeichen gelten andere Regeln:
http://www.php.net/manual/en/language.types.string.php#AEN3553
http://www.php.net/manual/en/language.types.array.php#AEN3791
Korrekt: echo "Blabla $foo[bar] Blabla";
Korrekt: echo "Blabla {$foo['bar']} Blabla";
Falsch: echo "Blabla $foo['bar'] Blabla";
Gruesse,
Thomas