Foros del Web » Programando para Internet » PHP »

Generando arrays multidimensionales

Estas en el tema de Generando arrays multidimensionales en el foro de PHP en Foros del Web. Hola amigos, Tengo una tabla cuya clave es el id de los usuarios y con los siguientes campos. Os paso estructura y registros, bastante simple. ...
  #1 (permalink)  
Antiguo 12/02/2004, 06:26
 
Fecha de Ingreso: mayo-2003
Mensajes: 125
Antigüedad: 20 años, 11 meses
Puntos: 0
Exclamación Generando arrays multidimensionales

Hola amigos,

Tengo una tabla cuya clave es el id de los usuarios y con los siguientes campos. Os paso estructura y registros, bastante simple.

Código PHP:
id id_zona altas bajas
3  12      0     1
3  15      1     1
4  12      0     1 
Ahora recorro la tabla buscando los permisos para un usuario determinado y lo voy metiendo en un array:

Código PHP:
session_start(); 
$sSQL="SELECT id_zona, altas, bajas
       FROM   zonas
       WHERE  id = " 
$id_usuario;
$result=mysql_db_query($bd,$sSQL);
while (
$row=mysql_fetch_array($result))
 {
  
$array_zonas = array (
                          
$row['id_zona'] => array ("altas"=>$row['altas'],"bajas"=>$row['bajas'])
                        );
 }
$_SESSION['permisos_zonas'] = $array_zonas
Y después quiero hacer referencia a esos valores como por ejemplo:

Código PHP:
print $permisos_zonas [12] [altas];
print 
$permisos_zonas [12] [bajas];
print 
$permisos_zonas [15] [altas];
print 
$permisos_zonas [15] [bajas]; 
Pues bien el resultado es el siguiente, Para id_usuario = 3 deberia mostrar: 0111 y muestra 01

Parece como si sólo cargara la primera fila,
¿Estoy cargando mal el array?

Muchas gracias y un saludo,
__________________
Lailuluelo
El error está en lo obvio
  #2 (permalink)  
Antiguo 12/02/2004, 06:33
Ex Colaborador
 
Fecha de Ingreso: junio-2002
Mensajes: 9.091
Antigüedad: 21 años, 10 meses
Puntos: 16
Hola,

Yo mas bien diria que solo se queda con la ultima ejecucion de esta linea:
Código PHP:
  $array_zonas = array (
                          
$row['id_zona'] => array ("altas"=>$row['altas'],"bajas"=>$row['bajas'])
                        ); 
Estas pisando el valor de $array_zonas, cada vez con un array de un solo elemento.

Si lo que quieres es que $array_zonas sea $array_zona[$id_zona]['altas'], tendrias que poner:
Código PHP:
  $array_zonas[$row['id_zona']] = array ("altas"=>$row['altas'],"bajas"=>$row['bajas']); 
Suerte.
__________________
Josemi

Aprendiz de mucho, maestro de poco.
  #3 (permalink)  
Antiguo 12/02/2004, 06:48
 
Fecha de Ingreso: mayo-2003
Mensajes: 125
Antigüedad: 20 años, 11 meses
Puntos: 0
Funciona

Muchas gracias una vez más, funciona.
__________________
Lailuluelo
El error está en lo obvio
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 16:09.