Foros del Web » Programando para Internet » PHP »

Duda con array multidimensional

Estas en el tema de Duda con array multidimensional en el foro de PHP en Foros del Web. Tengo el siguiente problema. Tengo una tabla en mi base de datos (tb_notas) donde tengo los siguientes campos: - IDalumno, - IDmateria, - Tipodeexamen, - ...
  #1 (permalink)  
Antiguo 18/03/2004, 17:26
 
Fecha de Ingreso: junio-2002
Mensajes: 126
Antigüedad: 21 años, 10 meses
Puntos: 0
Duda con array multidimensional

Tengo el siguiente problema.
Tengo una tabla en mi base de datos (tb_notas) donde tengo los siguientes campos:
- IDalumno,
- IDmateria,
- Tipodeexamen,
- Nota.

Donde tipo de examen puede ser: Priemrer parcial, segundo parcial, 1er recuperatorio y 2do. recuperatorio.

el tema es que quiero hacer una consulta para un alumno y que me lo pase a una array de tal forma que:

$array [idalumno][$notas]

y en las notas tenga:
$notas, (1er parcial=>nota 1er parcial
2do parcial=>nota 2er parcial
1er rec => nota 1er rec.
2do rec => nota 2do rec.

La verdad, no se como hacerlo.

Alguien me puede dar una mano?
  #2 (permalink)  
Antiguo 19/03/2004, 06:23
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Supongo que pretendes obtener esas notas de cada alumno agrupadas por alumno? ...Bueno .. fijate bien en la consulta SQL que se ejecuta y si no es esa intenta ver la solución por SQL que es lo ideal y más adecuado ...

Código PHP:
// conecta a tu BD .. etc ...
$sql="SELECT IDalumno,tipoexamen,nota FROM tb_notas GROUP BY IDalumno";
$resultado=mysql_query($sql) or die (mysql_error());
while (
$registro=mysql_fecht_array($resultado)){
     echo 
$registro['tipoexamen']." = ".$registro['nota']."<br>";

No sé si con eso te sobrá .. La función mysql_fetch_array() te entrega un array ya de por sí (pero un registro del resultado de tu consulta por cada vez que se llame hasta que finalice de leer el "record_set" completo que arrojó la consulta SQL realizada ..) Si deseas obtener un array como el que comentas puede hacerlo .. pero la definición del array sería algo tipo:

(si fuese agrupados por alumnos)
Código PHP:
$id_alumno=$registro['IDalumno'];
$notas[$id_alumno]['parcial'] = $registro['tipoexamen'];
$notas[$id_alumno]['nota'] = $registro['nota']; 
(Si sólo quieres parciales=>nota)
Código PHP:
$parcial=$registro['tipoexamen'];
$notas[$parcial] = $registro['nota']; 


Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.

Última edición por Cluster; 19/03/2004 a las 06:24
  #3 (permalink)  
Antiguo 19/03/2004, 09:22
 
Fecha de Ingreso: junio-2002
Mensajes: 126
Antigüedad: 21 años, 10 meses
Puntos: 0
Cita:
Mensaje Original por Cluster
Código PHP:
// conecta a tu BD .. etc ...
$sql="SELECT IDalumno,tipoexamen,nota FROM tb_notas GROUP BY IDalumno";
$resultado=mysql_query($sql) or die (mysql_error());
while (
$registro=mysql_fecht_array($resultado)){
     echo 
$registro['tipoexamen']." = ".$registro['nota']."<br>";

[/B]
Gracias por responder.

Con ese codigo solo me muestra la primera nota del primer estudiante.

No se como hacer para que me muestre el estudiantes, con todas sus notas de todos sus examenes. (si es que realmente estan en el array)

Saludos!
  #4 (permalink)  
Antiguo 19/03/2004, 09:26
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Ok, .. pues quitale el GROUP BY .. y ordenalos por IDalummno con ORDER BY IDalumno

Si tienes más dudas sobre eso .. consulta en el foro de Base de datos sobre la consulta SQL más adecuada.

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
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 00:45.