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