backbone: whileschleife ohne aktion einmal weiterlaufen lassen?

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

  1. Huhu backbone

    wie kann ich nun eine "runde" weiterspringen ohne die anktion echo... auszugeben?

    Du suchst "continue".

    Viele Grüße

    lulu

    --
    bythewaythewebsuxgoofflineandenjoytheday
    1. moin lulu...

      Du suchst "continue".

      saubääär... jenau das brauchsch :D.

      thx und tschau.

    2. 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

      1. 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

        1. 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

          1. 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

            1. 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?

              1. aloha nochmal.

                Was meinste dazu?

                saubäääre lööösung. scheint wohl mein problem zu sein: die dinge immer zu verkomplizieren ;).

                besten dank.

                tschau

  2. 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

    --
    bythewaythewebsuxgoofflineandenjoytheday
    1. 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