sql >> Base de Datos >  >> RDS >> Mysql

PHP:el problema con mysql_fetch_array() anidado me está volviendo loco

Estás obteniendo el resultado esperado. Si tiene el conjunto de resultados a,b,c,d , estás comenzando con a que es una categoría principal, por lo que retrocede hasta el inicio del conjunto e itera a través de a,b,c,d de nuevo como subcategorías. Ahora está al final del conjunto, por lo que ambos bucles se cerrarán porque no hay más datos.

Lo que probablemente quiera hacer es leer primero todos los datos en una matriz de PHP, luego iterar sobre eso y construir algún tipo de estructura de árbol. También puede construir su estructura de árbol directamente en el ciclo mysql_fetch.

Dependiendo de lo que intente lograr, también hay mejores formas de almacenar sus datos. Vale la pena leer sobre cómo almacenar árboles y datos jerárquicos en SQL. Los conjuntos anidados son probablemente lo que desea.

Otra cosa:no uses mysql_fetch_array , utilice mysql_fetch_assoc en cambio. De lo contrario, terminará con claves numéricas y asociativas y una matriz de filas que contiene el doble de la cantidad de datos que debería.