Heidi: if / else - Schleife

Hallo Zusammen,
folgende if/else - Schleife funktioniert nur zur Hälfte. Ich weiss nicht warum und eine Fehlermeldung gibt es auch nicht :(

$anz_ug_seiten = mysql_num_rows ($result3);
while ($row = mysql_fetch_row ($result3))
{
 if ($anz_ug_seiten >= 1)
  {echo "<span class="rot">".$row[0]."&nbsp;(Nr.".$row[1]."</span> | ";}
else { echo "<span class="rot">Keine untergeordneten Seiten.</span>"; }
  }
Wenn $result3 einen Treffer oder mehr hat, wird alles korrekt angzeigt. Wenn jedoch $result3 0 ist, wird gar nichts angezeigt.
Die if-Abfrage habe ich schon in allen Möglichen Variationen ($anz_ug_seite <> 0), ($anz_ug_seite != 0)... ausprobiert, alles wird korrekt angezeigt, wenn es Treffer gibt. Gibt es keine, wird gar nichts angezeigt. Ich weiss nicht woran das liegt, vielleicht kann mir jemand von euch helfen?

Viele Grüße aus Berlin
Heidi

  1. hi,

    folgende if/else - Schleife

    *argh* http://www.php-faq.de/q/q-terminologie-if.html

    funktioniert nur zur Hälfte.

    nein, vermutlich ganz.

    $anz_ug_seiten = mysql_num_rows ($result3);
    while ($row = mysql_fetch_row ($result3))
    {
    if ($anz_ug_seiten >= 1)
      {echo "<span class="rot">".$row[0]."&nbsp;(Nr.".$row[1]."</span> | ";}
    else { echo "<span class="rot">Keine untergeordneten Seiten.</span>"; }
      }
    Wenn $result3 einen Treffer oder mehr hat, wird alles korrekt angzeigt. Wenn jedoch $result3 0 ist, wird gar nichts angezeigt.

    jetzt denkst du bitte mal scharf nach, wie oft deine while-schleife durchlaufen wird, wenn es null ergebnisdatensätze gab.

    gruß,
    wahsaga

    --
    Rest in peace, Dimebag!
    #
    "Look, that's why there's rules, understand? So that you _think_ before you break 'em."
    1. Hallöle wahsaga,
      ich meinte selbstredend if-Anweisung - tschuldigung.

      Nach dem ich Deinem Rat gefolgt bin, funktioniert es nun auch so wie das haben wollte. Es ist doch immer wieder erstaunlich zu was für Ergebnissen man kommt, wenn man einfach nochmal grundsätzlich darüber nachdenkt, was man gerade tut...

      Ich habe jetzt die while-schleife in die if-Anweisung gepackt.
      Vermutlich gibt es genialere Lösungen, aber ich taste mich halt langsam heran...Daher auch meine Unsicherheit was die Terminilogie betrifft.
      Vielen Dank für Hilfe, jetzt kann ich mich anderen Problemen zuwenden :)
      Viele Grüße aus Berlin
      Heidi

      1. hi,

        Nach dem ich Deinem Rat gefolgt bin, funktioniert es nun auch so wie das haben wollte. Es ist doch immer wieder erstaunlich zu was für Ergebnissen man kommt, wenn man einfach nochmal grundsätzlich darüber nachdenkt, was man gerade tut...

        ja, nicht wahr? *g*

        Ich habe jetzt die while-schleife in die if-Anweisung gepackt.
        Vermutlich gibt es genialere Lösungen,

        nein, das hätte ich dir auch vorgeschlagen.
        es gibt dabei vermutlich noch mehrere leicht verschiedene wege, aber das ist ja erst mal egal - man sollte nich auf teufel komm raus ein paar bytes code o.ä. sparen wollen, sondern den code so schreiben, dass man ihn selber gut versteht.

        gruß,
        wahsaga

        --
        Rest in peace, Dimebag!
        #
        "Look, that's why there's rules, understand? So that you _think_ before you break 'em."
        1. yo,

          Vermutlich gibt es genialere Lösungen,
          nein, das hätte ich dir auch vorgeschlagen.

          das nenne ich selbstbewußtsein....

          Ilja

  2. Hallo!

    folgende if/else - Schleife funktioniert nur zur Hälfte.

    Vorab - sowas wie "if-Schleifen" gibt es nicht: http://www.php-faq.de/q/q-terminologie-if.html

    $anz_ug_seiten = mysql_num_rows ($result3);
    while ($row = mysql_fetch_row ($result3))
    {
    if ($anz_ug_seiten >= 1)
      {echo "<span class="rot">".$row[0]."&nbsp;(Nr.".$row[1]."</span> | ";}
    else { echo "<span class="rot">Keine untergeordneten Seiten.</span>"; }
      }
    Wenn $result3 einen Treffer oder mehr hat, wird alles korrekt angzeigt. Wenn jedoch $result3 0 ist, wird gar nichts angezeigt.
    Die if-Abfrage habe ich schon in allen Möglichen Variationen ($anz_ug_seite <> 0), ($anz_ug_seite != 0)... ausprobiert, alles wird korrekt angezeigt, wenn es Treffer gibt. Gibt es keine, wird gar nichts angezeigt.

    Das liegt einfach daran, dass wenn von mysql_num_rows() kein Ergebnis zurückgegeben wird, die Schleife (ja, "while" ist ein Schleife ;-)), und damit auch Dein Code innerhalb der Schleife, nicht ausgeführt wird.

    Grüße
    Andreas

    --
    SELFHTML Feature Artikel: http://aktuell.de.selfhtml.org/artikel/