Ver Mensaje Individual
  #4 (permalink)  
Antiguo 02/08/2011, 11:46
osga2002
 
Fecha de Ingreso: agosto-2011
Ubicación: Bogota
Mensajes: 37
Antigüedad: 12 años, 9 meses
Puntos: 1
Respuesta: Menu con submenus anidados de sql y php

Buenas Tardes a los integrates del Foro:

Reciban un cordial saludo, primero que todo gracias por su colaboración y la respuesta brindada, lei los documentos referencias y trate de modificar el codigo paa usarlo como lo requiero pero no fue posible, entonces nuevamente acudo a su ayuda para solucionarlo... engo dos tablas una para los menus y otra para los permisos de cada usuario asi:

cot_men
id padre nom_men accion activo
1 0 Crear Cotización 0 1
2 1 Cliente Asociado cliaso 1
3 1 Cliente Nuevo clinue 1
4 3 prueba 0 1
5 4 subprueba 0 1
6 0 Administracion 0 1
7 6 Privilegios priusu 1

cot_menper
id id_menu id_user estado
1 1 1 1
2 2 1 1
3 3 1 1
4 4 1 1
5 5 1 1
6 6 1 1
7 7 1 1

Y trate de hacer este codigo:

$node=0;
$tbl="cot_menper a LEFT JOIN cot_men b ON a.id_menu=b.id";
$cls="b.id as id,b.padre,b.nom_men,b.accion";
$order="ORDER BY b.padre,b.nom_men";
$pmt="WHERE a.id_user='$iduser' AND a.estado='1' AND b.activo='1' ";

function get_path($node,$tbl,$pmt,$cls,$order) {
global $xdb;
$parmt="FROM $tbl $pmt AND b.id=$node $order";
// retrieve all children of $parent
$result = mysql_query("SELECT $cls $parmt",$xdb);
echo "SELECT $cls $parmt";
// $result = mysql_query('SELECT parent FROM tree '.

// 'WHERE title="'.$node.'";');

$row = mysql_fetch_array($result);
while($row = mysql_fetch_array($result)){
echo "<br>".$row[0]." es ".$row[1]." otro ".$row[2].$row[3]."<br>";
}


// save the path in this array

$path = array();



// only continue if this $node isn't the root node

// (that's the node with no parent)

if ($row['padre']!='') {

// the last part of the path to $node, is the name

// of the parent of $node

$path[] = $row['padre'];



// we should add the path to the parent of this node

// to the path

$path = array_merge(get_path($row['id'],$tbl,$pmt,$cls,$order), $path);

}



// return the path
return $path;

}

Mi idea es que salgan asi los menus:

Administrar Crear Cotizacion
Privilegios Cliente Asociado
Cliente Nuevo
prueba
subprueba
Pero dejo en padre con 0 los menus que deben quedar en la parte superior como origenes, la verdad no encontre la manera de modificar el codigo para que me haga este resultado, teniendo en cuenta los privilegios del usuario no puede ingresar sino a los menus que le de permiso.

De antemano gracias nuevamente por su generosa colaboración.

Agradezco la ayuda que me puedan brindar.

Atentamente;


OSWALDO GAITAN ARAQUE
Bendiciones!!