Ok... załóżmy że w wyniku zapytania Mysql zwraca ci 5 rekordów...
mysql_query" title="Zobacz w manualu PHP" target="_manual potrafi pobrać te rekordy ale tylko po jednym (nie pytaj mnie dlaczego

)... dlatego, żeby pobrać wszystkie rekordy musimy użyć pętli...
Teraz, zapis
$array=mysql_fetch_assoc($query)) powoduje wpisanie do zmiennej
$array danych jednego (z 5) rekordów... jednocześnie powoduje to przesunięcię wewnętrznego wzkaźnika w tych danych otrzymanych z bazy na drugi rekord... dzieje się to automatycznie i dzięki temu przy drugim wywołaniu funkcji
mysql_fetch_assoc" title="Zobacz w manualu PHP" target="_manual pobierane są już dane drugiego rekordu, itd. aż do 5 rekordu... i teraz jeśli wywołamy funkcję mysql_fetch_assoc po raz szósty, zwróci ona nam FALSE, bo nie ma już więcej rekordów do przetworzenia... z tego właśnie korzysta pętla while, która wykonuje się dopóty, dopóki mysql_fetch_assoc zwraca jakieś konkretne dane... jak mysql_fetch_assoc zwróci FALSE pętla while się zatrzymuje... W środku pętli while możemy operować na danych jednego, konkretnego rekordu zwracanych w zmiennej $array...