Ver Mensaje Individual
  #1 (permalink)  
Antiguo 28/06/2005, 02:50
apicito2003
 
Fecha de Ingreso: mayo-2005
Mensajes: 26
Antigüedad: 18 años, 10 meses
Puntos: 0
enviar menu dinámico de una página a otra

Tengo un menu dinámico almacenado enuna base de datos, cuando entro la primera vez lo leo de la base de datos, lo almaceno en una matriz y desde alli lo imprimo en cada página.
Lo que trato de evitar es ir a la base de datos a cargar el menu cada vez que me muevo por la web, me parece un abuso. El problema que me encuentro es como envio la matriz de una página a otra. Lo he intentando con $_SESSION pero no acaba de funcionarme. Lo hago así:
Funcion que carga el menu desde la base de datos:
Código:
function cargamenu() {
  global $db;
  $query='select * from TEMAS order by TEM_NIVEL1,TEM_NIVEL2,TEM_NIVEL3,TEM_CODIGO';
  $result = mysql_query($query);
  if (!$result) die('Error Cargando Opciones de Menu:' . mysql_error());
  $i=0;
  unset($menu);
  $menu=array();
  while($temas = mysql_fetch_array($result)){
    $menu[$i]['TEM_CODIGO']=$temas['TEM_CODIGO'];
    $menu[$i]['TEM_NIVEL1']=$temas['TEM_NIVEL1'];
    $menu[$i]['TEM_NIVEL2']=$temas['TEM_NIVEL2'];
    $menu[$i]['TEM_NIVEL3']=$temas['TEM_NIVEL3'];
    $menu[$i]['TEM_DESCRIP']=$temas['TEM_DESCRIP'];
    $menu[$i]['TEM_ENLACE']=$temas['TEM_ENLACE'];
    $menu[$i]['TEM_PAI']=$temas['TEM_PAI'];
    $i++;
  }
  $op1=0;
  $op2=0;
  session_register('menu','op1','op2'); }
Función que lista el menu:
Código:
function listamenu($menu,$id1,$id2) {
  echo '<div id="barra-menu">';
  echo '<div id="menu">';
  reset ($menu);
  foreach($menu as $i => $filaval) {
echo '<p>'.$menu[$i]['TEM_DESCRIP'];
 	if ($menu[$i]['TEM_NIVEL2']<1){
	  echo '<a class="m1" href ="index.php?op=&id='.$menu[$i]["TEM_CODIGO"].'&pai='.$menu[$i]["TEM_CODIGO"].'">'.$menu[$i]["TEM_DESCRIP"].'</a><br>';}
	else if ($menu[$i]['TEM_PAI']==1) {
      if (trim($menu[$i]["TEM_ENLACE"])!='') {
        echo '<A class="m2" HREF="javascript:popUp(\''.$menu[$i]["TEM_ENLACE"].'\')">'.$menu[$i]["TEM_DESCRIP"].'</A><br>';}
	  else {
	    echo '<a class="m2" href ="index.php?op=&id='.$menu[$i]["TEM_CODIGO"].'&pai='.$menu[$i]["TEM_PAI"].'">'.$menu[$i]["TEM_DESCRIP"].'</a><br>';}
   } 
  }
}
Entrada del script:
Código:
    conectaDB();
    session_start();
    if (!session_is_registered('menu')) cargamenu();
    listamenu($menus,$op1,$op2);
Alguien puede decirme en que me estoy equivocando o si existe alguna alternativa mejor?