Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] phpexcel ordenar datos mysql

Estas en el tema de phpexcel ordenar datos mysql en el foro de PHP en Foros del Web. Hola estoy usando PHPExcel para hacer un reporte y me encontre con un problema a la hora de ordenar las filas. en este momento me ...
  #1 (permalink)  
Antiguo 06/04/2013, 13:32
 
Fecha de Ingreso: marzo-2012
Ubicación: Rosario
Mensajes: 108
Antigüedad: 12 años
Puntos: 0
Pregunta phpexcel ordenar datos mysql

Hola estoy usando PHPExcel para hacer un reporte y me encontre con un problema a la hora de ordenar las filas.

en este momento me esta mostrando desde una consulta a la base de datos
(Select * from empleados ORDER BY puesto) todos los registros obviamente con estas lineas en el archivo que genera el excel
Código PHP:
$objPHPExcel->setActiveSheetIndex(0)
            ->
setCellValue('A'.$row['id'].''''.$row['nombre'].'')
            ->
setCellValue('B'.$row['id'].''''.$row['apellido'].'')
            ->
setCellValue('C'.$row['id'].''''.$row['puesto'].''
            
->setCellValue('C'.$row['id'].''''.$row['tipotrabajo'].''); 
Resultado:
Nombre,Apellido,Puesto,Tipotrabajo
Nombre,Apellido,Puesto,Tipotrabajo
Nombre,Apellido,Puesto,Tipotrabajo
Nombre,Apellido,Puesto,Tipotrabajo

Lo que yo necesito es hacer un listado que quede ordenado de la siguente manera

Puesto
Tipo trabajo
Nombre, Apellido
Nombre, Apellido

Tipo trabajo
Nombre, Apellido


Puesto
Tipo Trabajo
Nombre, Apellido
Nombre, Apellido
Nombre, Apellido


Gracias por la ayuda de antemano
Saludos!!
  #2 (permalink)  
Antiguo 06/04/2013, 13:59
Avatar de Lautaro_eb  
Fecha de Ingreso: mayo-2010
Ubicación: Bariloche, Argentina
Mensajes: 284
Antigüedad: 13 años, 10 meses
Puntos: 24
Respuesta: phpexcel ordenar datos mysql

Por lo que yo creo que es es muy siemple... solo cambia el valor de los arrays...

Código PHP:
Ver original
  1. $objPHPExcel->setActiveSheetIndex(0)
  2.             ->setCellValue('A'.$row['id'].'', ''.$row['tipotrabajo'].'')
  3.             ->setCellValue('B'.$row['id'].'', ''.$row['puesto'].'')
  4.             ->setCellValue('C'.$row['id'].'', ''.$row['nombre'].''
  5.             ->setCellValue('C'.$row['id'].'', ''.$row['apellido'].'');

Un poco de logica...
__________________
Mi emprendimiento: Software BRC
Youtube: Tutoriales de programación y electrónica.
  #3 (permalink)  
Antiguo 06/04/2013, 14:21
 
Fecha de Ingreso: marzo-2012
Ubicación: Rosario
Mensajes: 108
Antigüedad: 12 años
Puntos: 0
Respuesta: phpexcel ordenar datos mysql

Cita:
Iniciado por Lautaro_eb Ver Mensaje
Por lo que yo creo que es es muy siemple... solo cambia el valor de los arrays...

Código PHP:
Ver original
  1. $objPHPExcel->setActiveSheetIndex(0)
  2.             ->setCellValue('A'.$row['id'].'', ''.$row['tipotrabajo'].'')
  3.             ->setCellValue('B'.$row['id'].'', ''.$row['puesto'].'')
  4.             ->setCellValue('C'.$row['id'].'', ''.$row['nombre'].''
  5.             ->setCellValue('C'.$row['id'].'', ''.$row['apellido'].'');

Un poco de logica...
Gracias por tu respuesta, el problema es otro. Ordenando como decis vos quedaria
Tipotrabajo,puesto,nombre,apellido
Tipotrabajo,puesto,nombre,apellido
Tipotrabajo,puesto,nombre,apellido
Tipotrabajo,puesto,nombre,apellido

Y lo que necesito es
Puesto (en una linea)
Tipo trabajo (en otra)
Nombre, apellido (en la misma)
Tipo trabajo (en otra) (si es que hay una personal con el mismo puesto pero con direfente trabajo)
nombre,apellido

Si no hay mas personas con el mismo puesto,
Mostrar el segundo puesto,
abajo el tipo trabajo
abajo los nombres y apellidos.

Para que la estructura quede:

Puesto
Tipotrabajo
Nombre, apellido
nombre,apellido
Tipo trabajo
nombre, apellido

Puesto
tipo trabajo
nombre, apellido

Saludos!
  #4 (permalink)  
Antiguo 06/04/2013, 20:40
Avatar de Lautaro_eb  
Fecha de Ingreso: mayo-2010
Ubicación: Bariloche, Argentina
Mensajes: 284
Antigüedad: 13 años, 10 meses
Puntos: 24
Respuesta: phpexcel ordenar datos mysql

Es algo de php basico, talves estaria bueno que leas algun manualsito.
Concatena las variables, las comillas simples estan todas de mas...
Código PHP:
->setCellValue('C'.$row['id'], $row['nombre'].' '.$row['apellido']) 
__________________
Mi emprendimiento: Software BRC
Youtube: Tutoriales de programación y electrónica.
  #5 (permalink)  
Antiguo 07/04/2013, 16:29
 
Fecha de Ingreso: marzo-2012
Ubicación: Rosario
Mensajes: 108
Antigüedad: 12 años
Puntos: 0
Respuesta: phpexcel ordenar datos mysql

Hola Lautaro, con este codigo que me pasaste
Cita:
Iniciado por [PHP
->setCellValue('C'.$row['id'], $row['nombre'].' '.$row['apellido'])[/PHP]
Quedaria de esta manera
Puesto
Tipotrabajo
Nombre, Apellido
y nuevamente lo mismo

Lo que necesito es que OMITA el puesto y el tipo de trabajo en el caso que el proximo registro tenga los mismos datos que el registro anterior, para que la estructura quede:

Puesto
Tipo Trabajo
Nombre,apellido
Nombre,apellido

En el caso que el segundo registro tenga el mismo puesto y el mismo tipo de trabajo

Gracias por tu respuesta igualmente
Saludos!
  #6 (permalink)  
Antiguo 07/04/2013, 21:27
Avatar de portalmana  
Fecha de Ingreso: septiembre-2007
Ubicación: Montevideo-Uruguay
Mensajes: 633
Antigüedad: 16 años, 6 meses
Puntos: 80
Respuesta: phpexcel ordenar datos mysql

Yo lo que haria es primero la consulta SQL ordenar también por tipo de trabajo...
Código SQL:
Ver original
  1. SELECT * FROM empleados ORDER BY puesto, tipotrabajo

Luego en el While donde armas el Excel, usaría dos variables auxiliares, una para puesto y otra para tipo de trabajo.
Código PHP:
Ver original
  1. $auxPuesto = '';
  2. $auxTipoTrabajo = '';
  3.  
  4. while($row = .....)
  5. {
  6.     if ($auxPuesto != $row['puesto']) {
  7.         //--- Escribes el puesto en el excel...
  8.         //--- Escribes el tipo de trabajo en el excel
  9.         $auxPuesto = $row['puesto'];
  10.         $auxTipoTrabajo = $row['tipotrabajo'];
  11.    } elseif ($auxTipoTrabajo != $row['tipotrabajo']) {
  12.         //--- Escribes el tipo de trabajo en el excel
  13.         $auxTipoTrabajo = $row['tipotrabajo'];
  14.    }
  15.  
  16.     //---Aqui escribes en el excel el nombre y apellido
  17.     //---pues esto siempre va.
  18.  
  19. }

Debes agregar algún control mas y creo que podría andar...

Saludos
__________________
"La imaginación es más importante que el conocimiento. El conocimiento es limitado, mientras que la imaginación no" -- A.Einstein
objetivophp.com,twitter.com/objetivophp
  #7 (permalink)  
Antiguo 08/04/2013, 08:02
 
Fecha de Ingreso: marzo-2012
Ubicación: Rosario
Mensajes: 108
Antigüedad: 12 años
Puntos: 0
Respuesta: phpexcel ordenar datos mysql

Hola Portalmana, es justo lo que necesitaba. Le hago un par de cambios y sale caminando.

Mil gracias!

Etiquetas: mysql, phpexcel, registros
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 08:33.