PHP - Urgente!!!!!!!

 
Vista:

Urgente!!!!!!!

Publicado por Oscargil (28 intervenciones) el 15/10/2003 18:24:49
Buenos dias.
Tengo 2 tablas en una tabla llamada "historial_cliente" donde aparece de forma desorganisada los codigos de producto que comprado el cliente y en otra llamada "productos" se encuestra el codigo de producto y el nombre del producto.
mi pregunta es como puedo mostrar en un combo <Select>, una lista de los productos comprados anteriormente por el cliente, es decir el codigo del producto (que esta en la tablas compras del cliente) , concatenado con su nombre (que no esta alli, pero si esta en la tabla "productos".
ejemplo cuando yo habra la lista me apareresca el codigo-nombre del producto que solo estan en la tabla "historial_cliente"
Gracias
Ayudenme por favor.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Urgente!!!!!!!

Publicado por Sito (122 intervenciones) el 15/10/2003 20:53:52
Utiliza combinaciones externas:

SELECT T1.CAMPO1, T1.CAMPO2, T2.CAMPO1 FROM TABLA1 T1, TABLA2 T2;

Asi puedes obtener datos de varias tablas en un solo resultado.

Saludos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Urgente!!!!!!!

Publicado por oscargil80 (28 intervenciones) el 15/10/2003 20:59:01
La cuestion no es asi.
son datos que aperecen en una tabla y que en otra esta el nombre que le correswponde al codigo. ese es el problema. si aperece producto "009" debe aparecer el codigo este mas el nombre que esta en otra tabla
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Urgente!!!!!!!

Publicado por Corpus (6 intervenciones) el 15/10/2003 21:05:27
Pues haces una consulta como te han indicado anteriormente y luego vas almacenando en una matriz el valor de un campo + el valor del otro.
Luego utiliza esta matriz para presentar los valores en el combo.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Urgente!!!!!!!

Publicado por Sito (122 intervenciones) el 16/10/2003 01:32:40
Suponía que conocías algo de SQL...

Tengo una tabla TABLA1 con dos campos ID y NOMBRE
1 - Homer
2 - Montgomery

Y una tabla TABLA2 con dos campos ID y APELLIDOS
1 - Simpson
2 - Burns

Para obtener '1 Homer Simpson' y '2 Montgomery Burns':

SELECT T1.ID, T1.NOMBRE, T2.APELLIDOS FROM TABLA1 T1, TABLA2 T2 WHERE T1.ID=T2.ID

Ya sabrás que puedes obtener el resultado de cada fila en una matriz(si se trata de MySQL, con mysql_fetch_row, p.e.) y que podrás combinar los valores devueltos(ID, NOMBRE y APELLIDOS) de la forma que quieras.

Saludos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Urgente!!!!!!!

Publicado por oscargil (28 intervenciones) el 16/10/2003 14:46:23
buenos dias.

Gracias. pero el problema, es que no es como tu dices, eso que tu dices yo lo se.
No son valores que llevan el mismo orden, ya que pueden haber productos que estan en la tabla "productos" y que en la tabla "historial_cliente" no estan. es decir el le va asignar el nombre a los codigos de los productos que estan en la tabla "historial_cliente"; puede que el cliente tenga dos productos repetidos porque lo compro dos veces, o tres etc.
En pocas palabras el dependiendo de los valores que tenga en la tabla "historial_cliente", el procedimiento tiene que asignarle el nombre que le corresponde a cada producto cuyo nombre esta en la tabla "producto".
Tabla producto : "cod_pro" y " nom_pro"
tabla historial_cliente: "cod_cliente" , "cod_pro"
tabla producto : 0001 - cafe.
0002 - pan, etc.
tabla historial_cliente: oscar-0001 es decir , (compro cafe)
carlos-0001 es decir ,(compro cafe)
carlos-0002 es decir ,(compro pan)
carlos-0002 es decir ,(compro pan)

y en el combo debe aperecer en una lista
Compras del cliente carlos
0001-cafe
0002-pan
0002-pac
es decir carlos compro pan dos veces y una cafe, y el proyecto dice que tengo que colocarle codigo y nombre producto.
gracias espero que entiendas amigo.
ayudame.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Urgente!!!!!!!

Publicado por Sito (122 intervenciones) el 16/10/2003 18:17:39
Bien, sigue siendo la misma respuesta. Veras que no he especificado un DISTINCT en la SELECT, con lo que la anterior consulta que puse devolveria valores repetidos. Por otro lado, al igualar con la clausula WHERE las claves de ambas tablas no aparecerian valores que no existiesen en la tabla de historial de clientes, asi que no termino de entender tus comentarios al respecto. Te dare algunas facilidades, aunque deberias especificar con que tipo de base de datos trabajas(MySQL, Oracle...), ya que aqui vamos a utilizar una funcion de concatenacion:

SELECT CONCAT(T1.cod_pro,' - ',T1.nom_pro) FROM producto T1, historial_cliente T2 WHERE T1.cod_pro=T2.cod_pro

Eso devuelve lo que tu necesitas en una sola SELECT.

Saludos.

PD: excusas por omitir los acentos, por lo visto los textarea del Opera 7.11 tienen problemas con ellos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar