Foros del Web » Programando para Internet » PHP »

Generar un array dentro de otro array al realizar consulta

Estas en el tema de Generar un array dentro de otro array al realizar consulta en el foro de PHP en Foros del Web. Buenas tardes, tengo el siguiente problema, genero la siguiente consulta: @import url("http://static.forosdelweb.com/clientscript/vbulletin_css/geshi.css"); Código MySQL: Ver original SELECT DISTINCT colegiaturas.idAlumno , colegiaturas.fecha_expedicion , colegiaturas.pago_inscripcion ,   ...
  #1 (permalink)  
Antiguo 01/02/2013, 12:22
 
Fecha de Ingreso: mayo-2009
Mensajes: 242
Antigüedad: 14 años, 11 meses
Puntos: 2
Pregunta Generar un array dentro de otro array al realizar consulta

Buenas tardes, tengo el siguiente problema, genero la siguiente consulta:

Código MySQL:
Ver original
  1. SELECT DISTINCT colegiaturas.idAlumno,colegiaturas.fecha_expedicion,colegiaturas.pago_inscripcion,
  2.  
  3. alumnos.nombre,alumnos.matricula,alumnos.beca,colegiaturas_detalle.mes,cuota_padres.cantidad,
  4.  
  5. colegiaturas_detalle.importe FROM alumnos INNER JOIN colegiaturas ON
  6.  
  7. alumnos.idAlumno = colegiaturas.idAlumno LEFT JOIN colegiaturas_detalle ON colegiaturas.idColegiatura
  8.  
  9.  = colegiaturas_detalle.idColegiatura LEFT JOIN cuota_padres ON alumnos.idAlumno =
  10.  
  11. cuota_padres.idAlumno WHERE alumnos.idAlumno = 100 AND alumnos.activo = '1' AND
  12.  
  13. colegiaturas.idNivel = 4 AND colegiaturas.ciclo_escolar = '2012 - 2013' AND
  14.  
  15. (colegiaturas_detalle.cancelado = 0 AND colegiaturas_detalle.pagado = 0 OR cuota_padres.cancelado = 0
  16.  
  17.  AND cuota_padres.pagado = 0) ORDER BY colegiaturas.grado ASC,colegiaturas.fecha_expedicion DESC

Y la estructura que me arroja es la siguiente:
Código PHP:
Ver original
  1. array( "ALUMNO" => "CHRISTIAN",
  2.           "INSCRIPCION" => "100.00",
  3.           "CUOTA_PADRES" => "50.00",
  4.           "ENERO" = > "200.00",
  5.           "FEBRERO" = > "100.00",
  6.           "MARZO" => "100.00"
  7.         )

No son exactamente esos datos pero si es la estructura que me arroja la consulta, pero yo requiero que la estructura sea de la siguiente manera:

Código PHP:
Ver original
  1. array( "ALUMNO" => "CHRISTIAN",
  2.           "INSCRIPCION" => "100.00",
  3.           "CUOTA_PADRES" => "50.00",
  4.           "COLEGIATURAS" => array( "ENERO" = > "200.00",
  5.                                                       "FEBRERO" = > "100.00",
  6.                                                       "MARZO" => "100.00"
  7.                                                     )
  8.         )

Espero me de a entender y me puedan ayudar. De atemano gracias.
  #2 (permalink)  
Antiguo 01/02/2013, 12:27
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Cáceres
Mensajes: 3.735
Antigüedad: 16 años
Puntos: 300
Respuesta: Generar un array dentro de otro array al realizar consulta

Para eso creo que deberás pedir ayuda en programación, en el foro de tu programa. No te será nada difícil con los datos que te traes de la base crear ese arreglo multinivel. Pero antes explica por qué necesitas un array de ese tipo
  #3 (permalink)  
Antiguo 01/02/2013, 12:32
 
Fecha de Ingreso: mayo-2009
Mensajes: 242
Antigüedad: 14 años, 11 meses
Puntos: 2
Respuesta: Generar un array dentro de otro array al realizar consulta

Bueno de hecho quiero que ese array venga desde la consulta mysql, por eso es que pongo la consulta y lo publico en el foro de mysql.


Requiero de que la consulta sea asi debido a que genero un archivo en excel en donde listo cada uno de los alumnos y debe mostrarles cuanto deben de inscripcion, cuanto de cuota de padres y que meses deben de colegiaturas todo en un mismo renglon, entonces asi como me arroja los datos mysql los registros de colegiaturas estan separados y si hago un while para mostrar los datos me va a poner 12 veces el nombre del alumno.
  #4 (permalink)  
Antiguo 01/02/2013, 12:42
Avatar de dashtrash
Colaborador
 
Fecha de Ingreso: abril-2007
Ubicación: Ni en Sevilla,ni en Sanlúcar..qué más da..
Mensajes: 927
Antigüedad: 17 años
Puntos: 270
Respuesta: Generar un array dentro de otro array al realizar consulta

Quieres que mysql te devuelva una estructura de datos en árbol?
Buena suerte con eso..
Antes de considerar un problema el que el "while te vaya a poner 12 veces el nombre del alumno", considera el problema de que "mysql va a procesar 12 veces la misma información, y me va a enviar filas y filas con información repetida".Eso cuesta también.
En cualquier caso, dices "si hago un while para mostrar".El asunto es que tienes que hacer un while para procesar.Tan sencillo como :
Código PHP:
Ver original
  1. $alumnos=array();
  2. ...
  3. while (...)
  4. {
  5.      if(!isset($alumnos[$row["ALUMNO"]]))
  6.       {
  7.            $alumnos[$row["ALUMNO"]]=$row;
  8.            $alumnos["COLEGIATURAS"]=array();        
  9.        }
  10.      $alumnos["COLEGIATURAS"][]=array("ENERO"=>...)
  11. }

Etiquetas: join, mysql, select
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 02:23.