Cita:
Iniciado por sumolari
OK, ya la he encontrado.
Gracias.
EDITO:
No logro que funcione. Ya hice una prueba con algo similar, obteniendo el mismo resultado.
Lo que ocurre es que repite siempre la categoría 1 hasta que se reinicia la conexión con el servidor.
Código PHP:
function crearArbol(){
include('config.php');
// Configuración general de la función
$tabla = 'categories';
$id_field = 'id';
$show_data = 'name';
$link_field = 'parent';
$parant = '0';
$prefix = '-';
$sql="SELECT * FROM $tabla WHERE $link_field = $parant";
$rs = @mysql_query($sql);
if($rs){
while($arr = mysql_fetch_array($rs)){
echo($prefix.$arr[$show_data].'<br>');
crearArbol();
}
}
mysql_close($conn['connection_step1']);
}
Esto creo que te pasa porque la función crearArbol que muestras siempre va al mismo primer nodo...
yo crearía dos funciones:
1) CrearArbol tal cual la tienes
2) MostrarSubArbol($nodo) de forma que tu while quedara como
while($arr = mysql_fetch_array($rs)){
echo($prefix.$arr[$show_data].'<br>');
MostrarSubArbol($prefix.$arr[$show_data]);
de forma que fuera similar a la crearArbol pero tomando como raíz el nodo que le pases por argumento y como condición de finalización que el nodo a consultar no tuviera hojas. Mientras tenga, vas llamándola recursivamente. El orden en que quieras hacerlo (inorden, postorden, preorden) ya es cosa tuya.
No sé si te queda claro, si no, dímelo e intento aclarártelo.
Saludos