Ver Mensaje Individual
  #1 (permalink)  
Antiguo 16/09/2009, 15:14
Avatar de PacoRuiz
PacoRuiz
 
Fecha de Ingreso: abril-2009
Mensajes: 254
Antigüedad: 15 años
Puntos: 3
Unknown column 'Array' in 'where clause'

Quiero mostrar una clasificación de tipos de fotos. Hay una base de datos de tipos, que tiene dos tablas. Una de ellas se llama tipos y tiene dos campos, IDtipo y descripcion. La otra es jerarquía y guarda qué tipo es hijo de quien.Por ejemplo el tipo paisajes de montaña será hijo del tipo paisajes. Pero un tipo puede tener varios padres, por ejemplo el tipo retratos de mujeres será hijo del tipo retratos y del tipo mujeres. La tabla jerarquía tiene dos campos, tipo y padre. Cada tipo tendrá tantos registros en esta tabla como padres tenga.

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:
<?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);

?>
Y el error que me da es este:

Cita:
Unknown column 'Array' in 'where clause'
He buscado por ahí sobre este error y no me entero de nada.