期待どおりの結果が得られています。結果セットがa,b,c,d
の場合 、a
で開始しています これは親カテゴリであるため、セットの先頭に巻き戻され、a,b,c,d
を繰り返します。 再びサブカテゴリとして。これでセットの最後にいるので、データがなくなると両方のループが終了します。
おそらくやりたいことは、最初にすべてのデータをPHP配列に読み込んでから、それを繰り返し処理して、ある種のツリー構造を構築することです。 mysql_fetchループで直接ツリー構造を構築できる場合もあります。
達成しようとしていることに応じて、データを保存するためのより良い方法もあります。ツリーと階層データをSQLに格納する方法を読む価値があります。入れ子集合はおそらくあなたが望むものです。
もう1つ:mysql_fetch_array
を使用しないでください 、mysql_fetch_assoc
を使用します 代わりは。そうしないと、数値キーと連想キー、および2倍の量のデータを含む行配列になってしまいます。