Ver Mensaje Individual
  #3 (permalink)  
Antiguo 20/12/2011, 08:20
Avatar de Eleazan
Eleazan
 
Fecha de Ingreso: abril-2008
Ubicación: Ibiza
Mensajes: 1.879
Antigüedad: 15 años, 11 meses
Puntos: 326
Respuesta: Simplificar codigo php

No entiendo la extructura que tienes.

La tabla podria ser algo así

id | parent_id | descripcion

Por ejemplo. En vez de tener... ¿nivel2gmao, nivel3gmao, nivel4gmao?

Básicamente, sabiendo el "parent_id" ya sabrias de que elemento depende (q vendría a ser el id del elemento). Todo en la misma tabla, y supongo q con menos campos

Despues, la funcion seria algo así

Código PHP:
genera_menu($parent_id) {
    
$select pg_query($dbconn"select * from inventario where parent_id=$parent_id");
    echo 
'<ul>'//Abrimos la lista
    
while ($selecarr pg_fetch_array($select,NULL,PGSQL_BOTH)) { //Recorremos los resultados
        
echo '<li><input type="checkbox"><label>'.$selecarr['descripcion'].'</label>'//Escribimos el elemento actual
        
genera_menu($selecarra['id']); //Busca más elementos dentro de el
        
echo '</li>';
        }
    echo 
'</ul>'//Cerramos la lista

Yo lo haría algo así.

No quiere decir q sea mejor o peor, pero lo veo más simple (creo). Lo importante es que entiendas la idea que quiero transmitir, no que copies / pegues el código :)

Es una función con recursividad, y la primera llamada debería ser algo así:
Código PHP:
genera_menu(0); 
Además, a tener en cuenta q los elementos "de la raiz", los que no dependen de nadie, parent_id deberia ser 0 ;)
__________________
>> Eleazan's Source
>> @Eleazan