Foros del Web » Programando para Internet » PHP »

Agrupar en celda correspondiente

Estas en el tema de Agrupar en celda correspondiente en el foro de PHP en Foros del Web. Buenas, A ver, es una tonteria, pero llevo ya algún tiempo sin programar sinceramente y hay cosillas que ya ni me acuerdo... En fin, tengo ...
  #1 (permalink)  
Antiguo 07/08/2010, 10:43
Avatar de OsSk4R  
Fecha de Ingreso: octubre-2006
Ubicación: $this->home
Mensajes: 824
Antigüedad: 17 años, 5 meses
Puntos: 74
Agrupar en celda correspondiente

Buenas,

A ver, es una tonteria, pero llevo ya algún tiempo sin programar sinceramente y hay cosillas que ya ni me acuerdo... En fin, tengo que ir calentando motores de nuevo.

A lo que voy es que tengo una simple consulta a una tabla. El objetivo es sacar el proyecto que tiene asignado cada desarrollador.

Mirar, esta es la consulta:

Código PHP:
Ver original
  1. $sql = mysql_query("SELECT * FROM m_grupos",$conexion);
  2.  
  3. while ($row = mysql_fetch_assoc($sql)) {        
  4. $id_proyecto = $row['id_proyecto'];
  5. $id_desarrollador = $row['id_desarrollador'];
  6.  
  7. echo $id_m_proyecto.':'.$id_desarrollador.'<br>';
  8.  
  9. }

Y el resultado es:

Proyecto | Desarrollador
1 1
2 1
2 2

Si os fijaís, el proyecto 2 tiene dos desarrolladores. Entonces, ¿como puedo hacer que no se repita, sino que se muestre así:

Proyecto | Desarrollador
1 1
2 1,2


Muchas gracias una vez más
  #2 (permalink)  
Antiguo 07/08/2010, 10:57
Avatar de mortiprogramador
Colaborador
 
Fecha de Ingreso: septiembre-2009
Ubicación: mortuoria
Mensajes: 3.805
Antigüedad: 14 años, 7 meses
Puntos: 214
Respuesta: Agrupar en celda correspondiente

hola
bueno, podrias intentar una de 2
0. hacer la consulta agregando un group by para agruparlos por el id del proyecto
1. hacer 2 consultas, la primera que traiga los proyectos y luego en el while de esa,
que traiga los id de los desarrolladores
prueba y comentas
saludos
__________________
"Si consigues ser algo más que un hombre, si te entregas a un ideal, si nadie puede detenerte, te conviertes en algo muy diferente."
Visita piggypon.com
  #3 (permalink)  
Antiguo 07/08/2010, 11:59
Avatar de OsSk4R  
Fecha de Ingreso: octubre-2006
Ubicación: $this->home
Mensajes: 824
Antigüedad: 17 años, 5 meses
Puntos: 74
Respuesta: Agrupar en celda correspondiente

Si me comentaron de hacerlo con group by y estuve leyendo un poco acerca de esa claúsula...

Mira, la tabla y sus campos es esta:

m_grupos
id,
id_m_proyecto,
id_desarrollador,


Y este es el código con GROUP BY:

Código PHP:
Ver original
  1. $sql = mysql_query("SELECT * FROM m_grupos GROUP BY id_desarrollador",$conexion);
  2. while ($row = mysql_fetch_assoc($sql)) {        
  3. $id_m_proyecto = $row['id_m_proyecto'];
  4. $id_desarrollador = $row['id_desarrollador'];
  5.  
  6.  
  7. echo $id_m_proyecto.':'.$id_desarrollador.'<br />';
  8.  
  9. }

El problema, es que ahora los resultados me los muestra así:

proyecto | desarrollador
1 1
2 2

En el proyecto dos, hay dos desarrolladores, y ahora, solo me muestra el segundo desarrollador, el primero no.

Saludos y gracias
  #4 (permalink)  
Antiguo 07/08/2010, 12:35
Avatar de mortiprogramador
Colaborador
 
Fecha de Ingreso: septiembre-2009
Ubicación: mortuoria
Mensajes: 3.805
Antigüedad: 14 años, 7 meses
Puntos: 214
Respuesta: Agrupar en celda correspondiente

bueno, los estas agrupando por el id_desarrollador, pero debes es agruparlos por el id_m_proyecto pues los proyectos son los que contienen a n desarrolladores en este caso
prueba de nuevo cambiando eso y comentas
saludos
__________________
"Si consigues ser algo más que un hombre, si te entregas a un ideal, si nadie puede detenerte, te conviertes en algo muy diferente."
Visita piggypon.com
  #5 (permalink)  
Antiguo 07/08/2010, 13:14
Avatar de OsSk4R  
Fecha de Ingreso: octubre-2006
Ubicación: $this->home
Mensajes: 824
Antigüedad: 17 años, 5 meses
Puntos: 74
Respuesta: Agrupar en celda correspondiente

Buenas de nuevo,

Lo he cambiado agrupandolo por id_m_proyecto y el resultado es igual, solo que ahora me muestra el primer desarrollador, el segundo no.

proyecto | desarrollador
1 1
2 1

Gracias de nuevo
  #6 (permalink)  
Antiguo 07/08/2010, 13:46
Avatar de mortiprogramador
Colaborador
 
Fecha de Ingreso: septiembre-2009
Ubicación: mortuoria
Mensajes: 3.805
Antigüedad: 14 años, 7 meses
Puntos: 214
Respuesta: Agrupar en celda correspondiente

bueno, entonces prueba la opción 1 que te comente aquí
saludos
__________________
"Si consigues ser algo más que un hombre, si te entregas a un ideal, si nadie puede detenerte, te conviertes en algo muy diferente."
Visita piggypon.com
  #7 (permalink)  
Antiguo 08/08/2010, 05:35
Avatar de OsSk4R  
Fecha de Ingreso: octubre-2006
Ubicación: $this->home
Mensajes: 824
Antigüedad: 17 años, 5 meses
Puntos: 74
Respuesta: Agrupar en celda correspondiente

Buenas de nuevo,

Lo he cambiado a como dijiste y sigue sin funcionar. Ahora me muestra los resultados como me los mostraba en el ejemplo que puse en el primer mensaje.

Este es el código actual:

Código PHP:
Ver original
  1. $sql = mysql_query("SELECT * FROM m_proyecto ORDER BY id",$conexion);
  2. while ($row = mysql_fetch_assoc($sql)) {        
  3. $id = $row['id'];
  4. $nombre_proyecto = $row['nombre'];
  5.  
  6.  
  7. $sql2 = mysql_query("SELECT * FROM m_grupos where id_m_proyecto='$id'",$conexion);
  8. while ($row2 = mysql_fetch_assoc($sql2)) {        
  9. $id_m_proyecto = $row2['id_m_proyecto'];
  10. $id_desarrollador = $row2['id_desarrollador'];
  11.  
  12.  
  13.  
  14.  
  15. echo $nombre_proyecto.' - '.$id_desarrollador."<br />";
  16.  
  17. }
  18. }

Y el resultado es:

Proyecto | Desarrollador
1 -------------------- 1
2 -------------------- 1
2 -------------------- 2

Muchas gracias ante todo
  #8 (permalink)  
Antiguo 08/08/2010, 14:24
Avatar de mortiprogramador
Colaborador
 
Fecha de Ingreso: septiembre-2009
Ubicación: mortuoria
Mensajes: 3.805
Antigüedad: 14 años, 7 meses
Puntos: 214
Respuesta: Agrupar en celda correspondiente

hola
bueno, basado en las modificaciones que hiciste has esto

0. agrega una variable $ids luego del primer $nombre_proyecto y hazla igual a vacio
Código PHP:
Ver original
  1. $ids = '';
pues esta variable sera un acumulador de los ids de los desarrolladores

1. en el segundo while, luego de $id_desarrollador agrega esto
Código PHP:
Ver original
  1. $ids = $ids.$id_desarrollador.',';
y elimina la siguiente línea (el echo que tienes actualmente)

2. finalmente fuera del primer while agrega esto
Código PHP:
Ver original
  1. $ids = substr($ids,0,strlen($ids)-1);
  2. echo $nombre_proyecto.' - '.$ids.'</br>';

hacemos un substr para eliminar la última coma y luego si imprimimos el proyecto y los desarrolladores que estan en él

prueba y comentas
saludos
__________________
"Si consigues ser algo más que un hombre, si te entregas a un ideal, si nadie puede detenerte, te conviertes en algo muy diferente."
Visita piggypon.com
  #9 (permalink)  
Antiguo 10/08/2010, 12:17
Avatar de OsSk4R  
Fecha de Ingreso: octubre-2006
Ubicación: $this->home
Mensajes: 824
Antigüedad: 17 años, 5 meses
Puntos: 74
Respuesta: Agrupar en celda correspondiente

Ahora si, grande!

Gracias de verdad, llevaba dias buscando la solución a este problemilla... jeje

Muchas gracias una vez mas y nos vemos

Etiquetas: agrupar, celda
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:42.