Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

PHP - problema com mysql_fetch_array() aninhado me deixando louco


Você está obtendo o resultado esperado. Se você tiver o conjunto de resultados a,b,c,d , você está começando com a que é uma categoria pai, portanto, retrocede até o início do conjunto e itera por a,b,c,d novamente como subcategorias. Agora você está no final do conjunto, então ambos os loops serão encerrados, pois não há mais dados.

O que você provavelmente quer fazer é ler todos os dados em um array PHP primeiro, então iterar sobre isso e construir algum tipo de estrutura em árvore. Você também pode construir sua estrutura de árvore diretamente no loop mysql_fetch.

Dependendo do que você está tentando alcançar, também existem maneiras melhores de armazenar seus dados. Vale a pena ler sobre como armazenar árvores e dados hierárquicos em SQL. Conjuntos aninhados são provavelmente o que você deseja.

Outra coisa:não use mysql_fetch_array , use mysql_fetch_assoc em vez de. Caso contrário, você acaba com chaves numéricas e associativas e uma matriz de linhas que contém o dobro da quantidade de dados que deveria.