Ver Mensaje Individual
  #8 (permalink)  
Antiguo 04/10/2006, 12:56
Avatar de GatorV
GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años
Puntos: 2135
Puedes usar estas funciones:
Código PHP:
function despliegaCategorias() {
    
$sql "SELECT `id`, `nombre` FROM `categorias` WHERE `ref`='0' ORDER BY `nombre` ASC"// Buscar todas las categorias "padre"
    
$result mysql_query$sql ) or die( mysql_error() );
    
    echo 
"Empezar listado:<br>";
    while( 
$row mysql_fetch_array$result ) ) {
        echo 
$row['nombre'] . "<br>";
        
listaHijos"-"$row['id'] );
    }
    echo 
"Termiando de listar";
}
function 
listaHijos$prefix ''$id ) {
    
$sql "SELECT `id`, `nombre` FROM `categorias` WHERE `ref`='$id' ORDER BY `nombre` ASC"// Buscar las categorias de este padre
    
    
$result mysql_query$sql ) or die( mysql_error() );
    
    if( 
mysql_num_rows$result ) == ) {
        return; 
// No hay categorias "hijo"
    
}
    
    while( 
$row mysql_fetch_array$result ) ) {
        echo 
$prefix $row['nombre'];
        
listaHijos$prefix "-"$row['id'] );
    }

Ojo esto puede causar mucha recursion y tener luego un problema de estabilidad, lo mas recomendable y deseable, es que solo corras esta funcion 1 vez, y generes un array o una estructura, que luego puedas serializar y guardar en tu base de datos, implementando lo que se conoce como "caching", para evitar generar codigos muy intensos para PHP y para la base de datos.