Foros del Web » Programando para Internet » PHP »

Mostrar varios registros pertenecientes a un mismo campo

Estas en el tema de Mostrar varios registros pertenecientes a un mismo campo en el foro de PHP en Foros del Web. Primero que nada, agradezco la buena voluntad y felicito la gran labor de este sitio. Les cuento. Tengo una BD MySQL donde tengo algunos datos ...
  #1 (permalink)  
Antiguo 09/02/2009, 22:35
 
Fecha de Ingreso: enero-2009
Mensajes: 5
Antigüedad: 15 años, 3 meses
Puntos: 0
Mostrar varios registros pertenecientes a un mismo campo

Primero que nada, agradezco la buena voluntad y felicito la gran labor de este sitio.

Les cuento.
Tengo una BD MySQL donde tengo algunos datos confidenciales, por lo que pongo una tabla de ejemplo.
Una tabla es "Proveedores" en donde se encuentran los datos de un proveedor bajo un RUT, como ID para cada proveedor. Luego otra tabla "Contactos" en donde cada contacto pertenece a un producto otorgado por un proveedor y posee datos como email y nombre del contacto.

Suponiendo que las tablas tienen estos datos:
Código:
---------------------------------------------------------
Proveedores		
---------------------------------------------------------
Nombre Proveedor|	  Rut  	|    Pais origen    |   ID
Proveedor 1	      |      XXXXX	 |    A	          |     1
Proveedor 2	     |     YYYYYY	 |    B	         |       2
Proveedor 3         |     ZZZZZZ  |     C                |     3
Código:
------------------------------------------------------------
Contactos			
-----------------------------------------------------------
Contacto	     |   email	Producto	        ID Proveedor
contacto 1    |	email 1	Producto 1	1
contacto 2    |	email 2	Producto 2	1
contacto 3    |	email 3	Producto 3	1
contacto 4    |	email 4	Producto 4	1
contacto 5    |	email 5	Producto 5	1
contacto 8    |	email 8	Producto A	2
contacto 9    |	email 9	Producto B	2
contacto 10  |	email 10	Producto C	2
contacto G   |	email G	Producto X	3
contacto H   |	email H	Producto Y	3
si hago una consulta del estilo:

SELECT nombre proveedor, producto, mail, contacto
FROM proveedor, contacto
WHERE ID = ID proveedor;

Mostraría algo así..
Código:
---------------------------------------------------------------------
Proveedor    |	Producto	   |    email   |	contacto
---------------------------------------------------------------------
Proveedor 1 |	Producto 1  |	email 1  |	contacto 1
Proveedor 1 |	Producto 2  |	email 2  |	contacto 2
Proveedor 1 |	Producto 3  |	email 3  |	contacto 3
Proveedor 1 |	Producto 4  |	email 4  |	contacto 4
Proveedor 1 |	Producto 5  |	email 5  |	contacto 5
Proveedor 2 |	Producto A  |	email 8  |	contacto 8
Proveedor 2 |	Producto B  |	email 9  |	contacto 9
Proveedor 2 |	Producto C  |	email 10|	contacto 10
Proveedor 3 |	Producto X  |	email G  |	contacto G
Proveedor 3 |	Producto Y  |	email H  |	contacto H
Lo que yo quiero obtener es algo así...

Código:
------------------------------------------------------------------
Proveedor	Producto	        email	contacto
------------------------------------------------------------------
Proveedor 1	Producto 1	email 1	contacto 1
	                Producto 2	email 2	contacto 2
                  	Producto 3	email 3	contacto 3
                 	Producto 4	email 4	contacto 4
                 	Producto 5	email 5	contacto 5
			
Proveedor 2	Producto A	email 8	contacto 8
	                Producto B	email 9	contacto 9
	                Producto C	email 10	contacto 10
			
Proveedor 3	Producto X	email G	contacto G
	                Producto Y	email H	contacto H
Lo unico que se me ocurrió es hacer una consulta como:

SELECT nombre proveedor, producto, mail, contacto
FROM proveedor, contacto
WHERE ID = ID proveedor
GROUP BY nombre proveedor;

Pero me muestra:
Código:
------------------------------------------------------------------
Proveedor	Producto	        email	contacto
-------------------------------------------------------------------
Proveedor 1	Producto 1	email 1	contacto 1
Proveedor 2	Producto A	email 8	contacto 8
Proveedor 3	Producto X	email G	contacto G
Y no me muestra los demás datos del mismo proveedor

En resumen, lo que quiero es que una misma columna, contega datos pertenecientes a un mismo proveedor.
Exiten otras tablas que tambien incluyen la ID del proveedor, por lo que quiero mostrar un resumen de varias tablas para un mismo proveedor de esa manera.
Me imagino que se puede hacer con PHP, pero mis conocimientos son muy limitados.

Espero haber explicado bien el problema, y agradezco la ayuda que pueden brindarme.
Gracias!!

PD: No pude postear images de las tablas ya que soy nuevo y no tengo la cantidad de mensajes minimas para ponerlas :(
  #2 (permalink)  
Antiguo 09/02/2009, 22:56
okram
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Mostrar varios registros pertenecientes a un mismo campo

No es muy claro lo que deseas hacer. Quieres obtener todos los datos de un solo proveedor?

  #3 (permalink)  
Antiguo 09/02/2009, 23:04
 
Fecha de Ingreso: enero-2009
Mensajes: 5
Antigüedad: 15 años, 3 meses
Puntos: 0
Respuesta: Mostrar varios registros pertenecientes a un mismo campo

Cita:
Iniciado por okram Ver Mensaje
No es muy claro lo que deseas hacer. Quieres obtener todos los datos de un solo proveedor?

Exacto, pero que se muestren los de las demas tablas tambien. Por ejemplo, suponiendo que tengo contrato con un proveedor, que muestre las facturas que me ha entregado. Es sólo un ejemplo, sería igual que como lo es con los contactos de un proveedor.

Quiero que se muestre algo asi, como un resumen por proveedor.
[CORREGIR EL ENLACE http]

Código:
htt://img3.imageshack.us/my.php?image=21111515pl1.png
  #4 (permalink)  
Antiguo 09/02/2009, 23:09
okram
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Mostrar varios registros pertenecientes a un mismo campo

Al momento de efectuar el while para ciclar los resultados, crea una variable temporal que vaya tomando como valor el nombre del último proveedor mostrado. Para esto tendrás que ordenar los resultados por nombre de proveedor en tu consulta.

Así, en cada loop comparas el valor del proveedor actual con el que tienes guardado en tu variable, si son iguales imprimes el resto de datos y no el nombre; y si no lo son, inicias un nuevo grupo con el proveedor actual.

  #5 (permalink)  
Antiguo 09/02/2009, 23:16
 
Fecha de Ingreso: enero-2009
Mensajes: 5
Antigüedad: 15 años, 3 meses
Puntos: 0
Respuesta: Mostrar varios registros pertenecientes a un mismo campo

Cita:
Iniciado por okram Ver Mensaje
Al momento de efectuar el while para ciclar los resultados, crea una variable temporal que vaya tomando como valor el nombre del último proveedor mostrado. Para esto tendrás que ordenar los resultados por nombre de proveedor en tu consulta.

Así, en cada loop comparas el valor del proveedor actual con el que tienes guardado en tu variable, si son iguales imprimes el resto de datos y no el nombre; y si no lo son, inicias un nuevo grupo con el proveedor actual.

Wow, se me hace complicado :(
Por el momento sólo he mostrado los datos de tablas con Dreamweaver, por lo que sólo sé que se aplica el comportamiento de servidor "Repetir región". Lo malo es que no se puede tener ese comportamiento anidado en una celda de la tabla a la que ya se le aplicó. Creo que tendré que sumergirme en PHP para obtener lo que necesito.
Te agradezco la ayuda!
  #6 (permalink)  
Antiguo 10/02/2009, 09:45
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años
Puntos: 2135
Respuesta: Mostrar varios registros pertenecientes a un mismo campo

Lamentablemente con el Dreamweaver, es dificíl hacer lo que propones debido a sus limitaciones, es por eso que tendrás que meterte un poco más a las estructuras de flujo internas de PHP en lugar de usar los comportamientos que te da Dreamweaver.

Saludos
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 10:19.