Ver Mensaje Individual
  #2 (permalink)  
Antiguo 25/10/2012, 04:41
Avatar de Eleazan
Eleazan
 
Fecha de Ingreso: abril-2008
Ubicación: Ibiza
Mensajes: 1.879
Antigüedad: 16 años, 1 mes
Puntos: 326
Respuesta: Menu generado automáticamente con php y mysql

Yo lo haría con una función recursiva...

La idea sería algo así

Código PHP:
function mostrarMenu($nivel$correlativo$dbf) {
    
$sql "SELECT * FROM `menu` WHERE `nivel`=$nivel AND `correlativo`=$correlativo";
    
$resultado $dbf->getConsulta($sql);
    echo 
'<ul>';
    while(
$arr mysql_fetch_array($resultado)) {
        echo 
'<li>'.$arr['nombremenu'];
        
mostrarMenu($nivel+1$arr['idmenu'], $dbf);
        echo 
'</li>';
    }
    echo 
'</ul>';

No sé si funciona, pero lo importante es q veas el concepto :)

La idea es ir recorriendo el "nivel 0" (o 1, depende como sea para ti!). Y por cada elemento de estos, recorrer todos sus hijos. Por cada hijo, recorrer todos sus hijos... así hasta el infinito!

Yo reformaria la tabla a algo así
idmenu | nombremenu | padre | url

No entiendo pq necesitas "nivel" y "correlativo". Al ser padre 0 sabes q es "primer nivel", sino, sabes q depende de otro (por ejemplo!)

Y se quedaria más sencillo el código:
Código PHP:
function mostrarMenu($padre $dbf) {
    
$sql "SELECT * FROM `menu` WHERE `padre`=$padre";
    
$resultado $dbf->getConsulta($sql);
    echo 
'<ul>';
    while(
$arr mysql_fetch_array($resultado)) {
        echo 
'<li>'.$arr['nombremenu'];
        
mostrarMenu($arr['idmenu'], $dbf);
        echo 
'</li>';
    }
    echo 
'</ul>';

Pero, para gustos, colores ;)
__________________
>> Eleazan's Source
>> @Eleazan