Foros del Web » Programando para Internet » PHP »

Similar a GROUP BY pero en PHP

Estas en el tema de Similar a GROUP BY pero en PHP en el foro de PHP en Foros del Web. Hola gente los molesto con esta consulta: Existe algo similar al GROUP BY del mysql pero en PHP ? ya que mediante un SELECT traigo ...
  #1 (permalink)  
Antiguo 09/09/2011, 11:16
 
Fecha de Ingreso: diciembre-2010
Mensajes: 35
Antigüedad: 13 años, 4 meses
Puntos: 0
Similar a GROUP BY pero en PHP

Hola gente los molesto con esta consulta:

Existe algo similar al GROUP BY del mysql pero en PHP ? ya que mediante un SELECT traigo varios datos y en ese mismo select realizo unas funciones.

La devolucion contiene 4 tipos de datos

(nombreYapellido,documento,legajo,cargo)

no puedo cambiar el jquery por que resuelvo unas cosas del cargo y es mas rapido si lo manejo desde el servidor


PROBLEMA: desde el PHP quiero mostrar 1 (uno) solo registro por persona.
SOLAMENTE EL NOMBRE y no que no se repita

EJemplo:
Código PHP:
nombreYapellido   documento   legajo   cargo

Gonzalez
,Ricardo      123123           001    A04
Perez
,Pedro           333333           002    G08
Gonzalez
,Ricardo      123123           001    A05 
MOSTRAR:

Código PHP:
nombre y apellido

Perez
,Pedro           
Gonzalez
,Ricardo 

toda la informacion la tengo contenida en una variable.

que puedo hacer?
  #2 (permalink)  
Antiguo 09/09/2011, 11:50
Avatar de Patriarka  
Fecha de Ingreso: enero-2011
Ubicación: Moreno, Buenos Aires, Argentina
Mensajes: 2.851
Antigüedad: 13 años, 3 meses
Puntos: 288
Respuesta: Similar a GROUP BY pero en PHP

mostrame como traes esos datos, no importa si estan repetidos
  #3 (permalink)  
Antiguo 12/09/2011, 10:46
 
Fecha de Ingreso: diciembre-2010
Mensajes: 35
Antigüedad: 13 años, 4 meses
Puntos: 0
Respuesta: Similar a GROUP BY pero en PHP

Código PHP:
Ver original
  1. $sql    = "select pdp.apeynom,pdp.docunro, pdp.legajo,
  2.  
  3.                 pctr.contrcargo as cargo
  4.  
  5.                 from pdp
  6.  
  7.                 inner join pctr on (pctr.legajo = pdp.legajo)
  8.  
  9.                 where pdp.apeynom like '%$Xnombre%'
  10.    
  11.                 and (  (substr(pctr.contrcargo,3,1) = 'W' )
  12.                
  13.                 or ((substr(pctr.contrcargo,3,1) = '0') and
  14.                
  15.                 (substr(pctr.contrcargo,3,3) < '025' or substr(pctr.contrcargo,3,3) > '045'))
  16.                
  17.                 or
  18.        
  19.                 (  substr(pctr.contrcargo,3,1) = 'A'
  20.                    or substr(pctr.contrcargo,3,1) = 'G'
  21.                    or substr(pctr.contrcargo,3,1) = 'B'
  22.                    or substr(pctr.contrcargo,3,1) = 'E'
  23.                    or substr(pctr.contrcargo,3,1) = 'H'
  24.                           or substr(pctr.contrcargo,3,1) = 'S'
  25.                    or substr(pctr.contrcargo,3,1) = 'J'
  26.                    or substr(pctr.contrcargo,3,1) = 'K'
  27.                    or substr(pctr.contrcargo,3,1) = 'L'
  28.                    or substr(pctr.contrcargo,3,1) = 'I'
  29.                        or substr(pctr.contrcargo,3,1) = 'N'
  30.                    or substr(pctr.contrcargo,3,1) = 'Q'
  31.                    or substr(pctr.contrcargo,3,1) = 'R' )
  32.        
  33.                     and (         substr(pctr.contrcargo,4,2) !=  '05'
  34.                              and  substr(pctr.contrcargo,4,2) !=  '06'
  35.                              and  substr(pctr.contrcargo,4,2) !=  '07'
  36.                         )
  37.                  )     
  38.  
  39.             union
  40.  
  41.                 select pdp.apeynom,pdp.docunro, pdp.legajo,  
  42.  
  43.                 pps.escargo as cargo
  44.    
  45.                 from pdp
  46.  
  47.                 inner join pps  on (pps.legajo = pdp.legajo)  
  48.  
  49.                 where  pdp.apeynom like '%$Xnombre%'
  50.    
  51.                 and (  (substr(pps.escargo,3,1) = 'W' )
  52.                
  53.                 or
  54.    
  55.                 ((substr(pps.escargo,3,1) = '0')
  56.             and (substr(pps.escargo,3,3) < '025' or substr(pps.escargo,3,3) > '045'))
  57.                
  58.                 or
  59.      
  60.               (       substr(pps.escargo,3,1) = 'A'
  61.                    or substr(pps.escargo,3,1) = 'G'
  62.                    or substr(pps.escargo,3,1) = 'B'
  63.                    or substr(pps.escargo,3,1) = 'E'
  64.                    or substr(pps.escargo,3,1) = 'H'
  65.                    or substr(pps.escargo,3,1) = 'S'
  66.                    or substr(pps.escargo,3,1) = 'J'
  67.                    or substr(pps.escargo,3,1) = 'K'
  68.                    or substr(pps.escargo,3,1) = 'L'
  69.                    or substr(pps.escargo,3,1) = 'I'
  70.                    or substr(pps.escargo,3,1) = 'N'
  71.                    or substr(pps.escargo,3,1) = 'Q'
  72.                    or substr(pps.escargo,3,1) = 'R' )
  73.        
  74.                   and (              substr(pps.escargo,4,2) !=  '05'
  75.                             and  substr(pps.escargo,4,2) !=  '06'
  76.                             and  substr(pps.escargo,4,2) !=  '07'
  77.                       )
  78.               ) "
  #4 (permalink)  
Antiguo 12/09/2011, 10:52
Avatar de Nano_  
Fecha de Ingreso: febrero-2006
Ubicación: Bogotá, Colombia
Mensajes: 1.866
Antigüedad: 18 años, 2 meses
Puntos: 96
Respuesta: Similar a GROUP BY pero en PHP

Saludos

Podrias manejarlo en php con un if y comparando los registros. Debes tener en cuenta que la consulta debe estar ordenada por nombre para que te funcione.
__________________
:.:Nano.:: @nano_hard - Retornando al foro
  #5 (permalink)  
Antiguo 12/09/2011, 11:32
 
Fecha de Ingreso: diciembre-2010
Mensajes: 35
Antigüedad: 13 años, 4 meses
Puntos: 0
Respuesta: Similar a GROUP BY pero en PHP

Bárbaro, ahora agrego el group by para el sql, me pones el código para el PHP?
  #6 (permalink)  
Antiguo 13/09/2011, 08:20
Avatar de JuJoGuAl  
Fecha de Ingreso: julio-2009
Ubicación: Venezuela
Mensajes: 754
Antigüedad: 14 años, 9 meses
Puntos: 19
Respuesta: Similar a GROUP BY pero en PHP

amigo es lo mismo s tu te traes los resultados ordenados obviamente quedaran ordenados, dentro de tu consulta pone el GROUP BY campo... y listo la consulta traera los registros ordenados.... y alli los trabajas en php, es lo que quieres no?
  #7 (permalink)  
Antiguo 15/09/2011, 10:38
 
Fecha de Ingreso: diciembre-2010
Mensajes: 35
Antigüedad: 13 años, 4 meses
Puntos: 0
Respuesta: Similar a GROUP BY pero en PHP

lo que busco es que en php me elimine los nombres repetidos (o los reagrupe), la consulta me trae a la misma persona pero con diferente cargo, cuando lo tengo que mostrar no me interesa el cargo solo el nombre de la persona (y que no se repita si tiene mas de un cargo)

pd: los demas datos son innecesarios en la muestra del resultado.
  #8 (permalink)  
Antiguo 15/09/2011, 10:54
Avatar de JuJoGuAl  
Fecha de Ingreso: julio-2009
Ubicación: Venezuela
Mensajes: 754
Antigüedad: 14 años, 9 meses
Puntos: 19
Respuesta: Similar a GROUP BY pero en PHP

bueno hacerlo con php es mucho dar, con el mismo mysql le dices GROUP BY nombre y apellido, y listo mostrara un nombre por campo si hay 2 q tengan diferentes campos seleccionara 1 no mas...

Yo ya me e topado con casos asi...

Etiquetas: group, mysql, registro, similar, variables
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 04:28.