Gnom: while schleife

Hello,

ich muss mal nerven weil ich etwas echt nicht verstehe....

mal eine einfache while schleife:
 $a=0;
 while($a<10)
  {
    echo $a;
  }

ok, bedeutet ja soviel wie:"Wiederhole dich solange wie a<10".
Aber wie kann man folgende schleife erklären bzw. deuten?

  
$query="select * from tabelle";  
  
if($erg=mysql_query($query))  
  {  
      while($result=mysql_fetch_assoc($erg))  
        {  
          irgndwas  
        }  
  }  
 else  
  {  
  
  }  

Was macht jetzt die While Schleife? Woher weiß While was es tun soll?
Oder bedeutet das jetzt: "Fülle $result bis es den gleichen Inhalt hat wie $erg"?

Hoffe auf Hilfe!

euer Gnom(e)

  1. Hi Gnom!

    $a=0;
    while($a<10)
      {
        echo $a;
      }

    Diese Schleife terminiert nie!

    Was macht jetzt die While Schleife?

    Sie läuft solange, bis mysql_fetch_assoc() FALSE zurückgibt.

    Woher weiß While was es tun soll?

    Das ist wohl in der Programmiersprache implementiert. ;-)

    Oder bedeutet das jetzt: "Fülle $result bis es den gleichen Inhalt hat wie $erg"?

    Nein.
    Die Funktion mysql_fetch_assoc() gibt immer einen Datensatz zurück und erhöht den internen Zeiger um 1, damit beim nächsten Durchlauf der nächste Datensatz zurückgegeben werden kann.
    Sind keine Datensätze mehr vorhanden, gibt die Funktion FALSE zurück und die while-Schleife wird beendet.

    MfG H☼psel

    --
    "It's amazing I won. I was running against peace, prosperity, and incumbency."
    George W. Bush speaking to Swedish Prime Minister unaware a live television camera was still rolling, June 14, 2001
    Selfcode: ie:% fl:( br:> va:) ls:& fo:) rl:? n4:& ss:| de:] js:| ch:? sh:( mo:) zu:)
    1. Hi,

      stimmt, habe wohl das $a++; vergessen :)
      Ok, nun habe ich es verstanden!
      Danke!