Foros del Web » Programando para Internet » PHP »

Agrupar registros por una columna y mostrar todo

Estas en el tema de Agrupar registros por una columna y mostrar todo en el foro de PHP en Foros del Web. Hola a todos, lo que quiero es, mediante una consulta a una base de datos, agrupar los registros de una tabla, pero que se muestren ...
  #1 (permalink)  
Antiguo 10/08/2011, 07:02
 
Fecha de Ingreso: septiembre-2010
Mensajes: 55
Antigüedad: 13 años, 7 meses
Puntos: 0
Agrupar registros por una columna y mostrar todo

Hola a todos,
lo que quiero es, mediante una consulta a una base de datos, agrupar los registros de una tabla, pero que se muestren todos los datos.

Me explico:
Mi tabla tiene las siguientes columnas: id, usuario, imagen
Pues lo que quiero es que si hay varios registros con el mismo usuario se agrupen y muestren todas las imagenes de ese usuario.

Por ejemplo:
La tabla tiene estos registros:
usuario --------- imagen
elsaylala --------- http://ptc.mjuegos.net/Sources/shop/...es/Corazon.png
elsaylala --------- http://ptc.mjuegos.net/Sources/shop/item_images/Dj.png
otro --------- http://ptc.mjuegos.net/Sources/shop/...mages/Euro.png
otro --------- http://ptc.mjuegos.net/Sources/shop/...ages/Skype.png

Y yo quiero que se muestre en mi web php así:
Elsaylala:


Otro:




Espero haberme explicado, gracias de antemano.
  #2 (permalink)  
Antiguo 10/08/2011, 07:04
Avatar de jotaincubus  
Fecha de Ingreso: mayo-2005
Ubicación: Medellin - Colombia
Mensajes: 1.797
Antigüedad: 18 años, 11 meses
Puntos: 394
Respuesta: Agrupar registros por una columna y mostrar todo

utiliza la clausula GROUP BY de MySql
__________________
Por que existe gente que no agradece después de que se le ha brindado tiempo y ayuda ???
  #3 (permalink)  
Antiguo 10/08/2011, 07:18
 
Fecha de Ingreso: septiembre-2010
Mensajes: 55
Antigüedad: 13 años, 7 meses
Puntos: 0
Respuesta: Agrupar registros por una columna y mostrar todo

Eso ya lo he hecho, pero solo me muestra una de las imagenes de las dos que está al mismo nombre...
  #4 (permalink)  
Antiguo 10/08/2011, 07:22
Avatar de jotaincubus  
Fecha de Ingreso: mayo-2005
Ubicación: Medellin - Colombia
Mensajes: 1.797
Antigüedad: 18 años, 11 meses
Puntos: 394
Respuesta: Agrupar registros por una columna y mostrar todo

Mira es sencillo, los puedes hacer con GROUP BY o hasta con un ORDER BY y si solo te imprime una de las dos el problema debe estar en la forma en que imprimes los resultados.

Intenta realizar ese query en otro programa como PHPMyAdmin o donde puedas ver el resultado de la tabla para que te fijes que MySql te esta entregando todos los resultados que necesitas y en la forma en que los necesitas.
__________________
Por que existe gente que no agradece después de que se le ha brindado tiempo y ayuda ???
  #5 (permalink)  
Antiguo 10/08/2011, 07:23
Avatar de bUllan9ebrio  
Fecha de Ingreso: enero-2011
Ubicación: Chile
Mensajes: 1.128
Antigüedad: 13 años, 3 meses
Puntos: 128
Respuesta: Agrupar registros por una columna y mostrar todo

Hola, si pruebas con group by y Order by a la vez, te debiera mostrar todas las imagenes


Saludos


Pd: elabora la consulta directo en el motor de base de datos, para que veas lo que te esta arrojando antes de que tú te encargues de hacerlo en Php


Edit: jotaincubus me gano
__________________
Si no vivimos como pensamos, pronto empezaremos a pensar como vivimos.
Más vale un Gracias sincero, que un número que aumente "popularidad" ¬¬°

Universidad de chile, campeón
  #6 (permalink)  
Antiguo 10/08/2011, 07:25
 
Fecha de Ingreso: septiembre-2010
Mensajes: 55
Antigüedad: 13 años, 7 meses
Puntos: 0
Respuesta: Agrupar registros por una columna y mostrar todo

Si, a ver, en la mysql tengo 4 registros: dos de elsaylala y otros dos de otro. Cada uno tiene una imagen diferete, pero cuando hago el group by usuario me aparece:
Elsaylala:
1imagen

Otro:
1imagen


En vez de las dos que deberian aparecer.

El código que uso es:
Código PHP:
<?php
include ('./config.php');
@
mysql_query("SET NAMES 'latin1'");
$queEmp "SELECT * FROM inventario GROUP BY usuario";
$resEmp mysql_query($queEmp$con) or die(mysql_error());
$totEmp mysql_num_rows($resEmp);
if (
$totEmp0) {
while (
$rowEmp mysql_fetch_assoc($resEmp)) {
echo 
"<b>".$rowEmp['usuario']."</b> | <i>Inventario de ".$rowEmp['usuario']."</i><br />";
echo 
"<img src='".$rowEmp['imagen']."' title='".$rowEmp['texto']."' /><br /><br />";
}
}

?>

Etiquetas: agrupar, columna, imagenes, registro, registros, tabla, todo, usuarios
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 18:44.