Получавате очаквания резултат. Ако имате набора от резултати a,b,c,d
, започвате с a
което е родителска категория, така че се пренавива до началото на набора и се повтаря през a,b,c,d
отново като подкатегории. Сега сте в края на набора, така че и двата цикъла ще излязат, тъй като няма повече данни.
Това, което вероятно искате да направите, е първо да прочетете всички данни в PHP масив, след това да го повторите и да изградите някаква дървовидна структура. Може също да сте в състояние да изградите своята дървовидна структура директно в цикъла mysql_fetch.
В зависимост от това, което се опитвате да постигнете, има и по-добри начини за съхранение на вашите данни. Струва си да прочетете как да съхранявате дървета и йерархични данни в SQL. Вложените набори вероятно са това, което искате.
Още нещо:не използвайте mysql_fetch_array
, използвайте mysql_fetch_assoc
вместо. В противен случай ще получите цифрови и асоциативни ключове и масив от редове, който съдържа два пъти по-голямо количество данни, което трябва.