Otrzymujesz oczekiwany rezultat. Jeśli masz zestaw wyników a,b,c,d
, zaczynasz od a
która jest kategorią nadrzędną, więc przewija do początku zbioru i przechodzi przez a,b,c,d
ponownie jako podkategorie. Teraz jesteś na końcu zestawu, więc obie pętle zakończą się, ponieważ nie ma więcej danych.
To, co prawdopodobnie chcesz zrobić, to najpierw wczytać wszystkie dane do tablicy PHP, a następnie wykonać iterację i zbudować coś w rodzaju struktury drzewa. Możesz także zbudować strukturę drzewa bezpośrednio w pętli mysql_fetch.
W zależności od tego, co chcesz osiągnąć, istnieją również lepsze sposoby przechowywania danych. Warto poczytać, jak przechowywać drzewa i dane hierarchiczne w SQL. Zestawy zagnieżdżone są prawdopodobnie tym, czego chcesz.
Jeszcze jedna rzecz:nie używaj mysql_fetch_array
, użyj mysql_fetch_assoc
zamiast. W przeciwnym razie otrzymasz klucze numeryczne i asocjacyjne oraz tablicę wierszy, która zawiera dwa razy więcej danych niż powinna.