De manera que al listar los tipos, muchos de ellos saldrán varias veces, pues saldrán debajo de cada uno de sus padres.
Empiezo mostrando los que no tienen padre. Quien no tenga registros en la tabla jerarquía no tendrá padre. Para cada uno de ellos muestro sus hijos, y a su vez los hijos de cada hijo, y así sucesivamente.
No existe ningún tipo cuya ID sea cero, de modo que lo hago de modo que buscar hijos para un padre cero sea buscar aquellos que no tienen registros en la tabla jerarquía.
Este es el código que intenta mostrar todos los tipos ordenados según sus padres:
Código:
Y el error que me da es este:<?php function buscahijos($padre){ global $clases; foreach ($clases as $actual){ if (eshijo($actual, $padre)){ echo "$actual<br>"; buscahijos($actual); } } } function eshijo($actual, $padre){ if ($padre=0){ $result=mysql_query("select count(*) from jerarquia where tipo=$actual")or die (mysql_error()); $existe=mysql_result($result,0); if (!$existe){ return 1; } else{ return 0; } } else{ $result=mysql_query("select count(*) from jerarquia where tipo=$actual AND padre = $padre")or die (mysql_error()); $existe=mysql_result($result,0); return $existe; } } $link = mysql_connect("localhost","root",""); mysql_select_db(dbimagenes,$link); $result=mysql_query("select * from tipos"); $i=0; while($array = mysql_fetch_array($result,MYSQL_ASSOC)){ $clases[$i]["ID"] = $array["IDtipo"]; $clases[$i]["descrip"] = $array["descripcion"]; $i++; } $padre=0; buscahijos($padre); ?>
Cita:
He buscado por ahí sobre este error y no me entero de nada. Unknown column 'Array' in 'where clause'