PHP - Urgente

 
Vista:

Urgente

Publicado por oscargil (28 intervenciones) el 15/10/2003 21:01:40
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 Diego Vélez (44 intervenciones) el 17/10/2003 07:46:03
Hola Oscar.

Lo primero que tienes que hacer es una consulta anidada para seleccionar lo que necesitas y como lo necesitas, concatenar los valores y luego meterlos en el combo. Voy a suponer que en tu tabla historial_cliente están las compras de todos los clientes y que indicas el cliente en una caja de texto llamada cliente y que en historial_cliente identificas al cliente con la cédula.

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 Diego Vélez (44 intervenciones) el 17/10/2003 07:48:03
$resultado=mysql_query("select historial_cliente.codigo, producto.nombre from historial_cliente, producto where historial_cliente.codigo = producto.codigo and historial_celiente.cedula = $ced group by historial_cliente.codigo order by historial_cliente.codigo" ,$conexion);//Buscas los códigos y nombres de los productos que coincidan en las dos tablas y que sean de detrminado cliente. Los agrupa por codigo para evitar repeticiones, pero si no es eso lo que quieres, simplemente omite group by historial_cliente.codigo. Si quieres. $conexion es la variable de conexion a la BD.
$filas=mysql_num_rows($resultado);
echo '<select name="combo_productos">';
for($i=0;$i<$filas;$i++)
{
$aux=mysql_result($busqueda,$i,'codigo')." ".mysql_result($busqueda,$i,'nombre'); //fíjate que estoy leyendo el código y el nombre del producto por cada fila y los estoy concatenando con un espacio en el medio, lo puedes cambiar para que sea cualquier caracter. Si esta línea te saca error, cambia 'codigo' por 0 y 'nombre' por 1
echo '<option>$aux</option>';//imprimo en el combo. Si quieres puedes agregarle un value al combo (Te lo recomiendo).
}//fin del ciclo.
echo '</select>';

Obviamente, es posible que tengas que hacer unos cuantos cambios para que funcione con tu script y con tus tablas, pero espero que me hayas cogido la idea. Este ejemplo lo escribo de carrera, pero si no te funciona, me avisas y me tomo el tiempo para probarlo.

Mucha suerte.
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 Diego Vélez (44 intervenciones) el 17/10/2003 07:56:47
Hola Oscar.

Lo primero que tienes que hacer es una consulta anidada para seleccionar lo que necesitas y como lo necesitas, concatenar los valores y luego meterlos en el combo. Voy a suponer que indicas el cliente en una caja de texto llamada cliente.

$resultado=mysql_query("select historial_cliente.cod_pro, producto.nom_pro from historial_cliente, producto where historial_cliente.cod_pro = producto.cod_pro and historial_cliente.cod_cliente = $cliente order by historial_cliente.cod_pro" ,$conexion);//Buscas los códigos y nombres de los productos que coincidan en las dos tablas y que sean de determinado cliente. $conexion es la variable de conexion a la BD.
$filas=mysql_num_rows($resultado);
echo '<select name="combo_productos">';
for($i=0;$i<$filas;$i++)
{
$aux=mysql_result($busqueda,$i,'cod_pro')." ".mysql_result($busqueda,$i,'nom_pro'); //fíjate que estoy leyendo el código y el nombre del producto por cada fila y los estoy concatenando con un espacio en el medio, lo puedes cambiar para que sea cualquier caracter. Si esta línea te saca error, cambia 'cod_pro' por 0 y 'nom_pro' por 1
echo '<option>$aux</option>';//imprimo en el combo. Si quieres puedes agregarle un value al combo (Te lo recomiendo).
}//fin del ciclo.
echo '</select>';

Obviamente, es posible que tengas que hacer unos cuantos cambios para que funcione con tu script y con tus tablas, pero espero que me hayas cogido la idea. Este ejemplo lo escribo de carrera, pero si no te funciona, me avisas y me tomo el tiempo para probarlo.

Mucha suerte.
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 Diego Vélez (44 intervenciones) el 17/10/2003 07:56:55
Hola Oscar.

Lo primero que tienes que hacer es una consulta anidada para seleccionar lo que necesitas y como lo necesitas, concatenar los valores y luego meterlos en el combo. Voy a suponer que indicas el cliente en una caja de texto llamada cliente.

$resultado=mysql_query("select historial_cliente.cod_pro, producto.nom_pro from historial_cliente, producto where historial_cliente.cod_pro = producto.cod_pro and historial_cliente.cod_cliente = $cliente order by historial_cliente.cod_pro" ,$conexion);//Buscas los códigos y nombres de los productos que coincidan en las dos tablas y que sean de determinado cliente. $conexion es la variable de conexion a la BD.
$filas=mysql_num_rows($resultado);
echo '<select name="combo_productos">';
for($i=0;$i<$filas;$i++)
{
$aux=mysql_result($busqueda,$i,'cod_pro')." ".mysql_result($busqueda,$i,'nom_pro'); //fíjate que estoy leyendo el código y el nombre del producto por cada fila y los estoy concatenando con un espacio en el medio, lo puedes cambiar para que sea cualquier caracter. Si esta línea te saca error, cambia 'cod_pro' por 0 y 'nom_pro' por 1
echo '<option>$aux</option>';//imprimo en el combo. Si quieres puedes agregarle un value al combo (Te lo recomiendo).
}//fin del ciclo.
echo '</select>';

Obviamente, es posible que tengas que hacer unos cuantos cambios para que funcione con tu script , pero espero que me hayas cogido la idea. Este ejemplo lo escribo de carrera, pero si no te funciona, me avisas y me tomo el tiempo para probarlo.

Mucha suerte.
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 Diego Vélez (44 intervenciones) el 17/10/2003 08:00:01
Tuve problemas tratando de enviar la respuesta, pues era muy larga. La que cuenta es la última. De las anteriores no me di cuenta, eran intentos para ver si si se enviaban los datos.

Un saludo.
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

Me da error

Publicado por oscargil (28 intervenciones) el 17/10/2003 17:42:08
Hola Amigo, Buenos dias.

el codigo me da error, no se que sera, le he cambiado de todo y nada,
hay una cosas que no me parecen, ya que hay una variable llamada $busqueda que no se que hace alli, porque no la utilizas mas.
y me da error mas frecuentemente en
$filas=mysql_num_rows($resultado); , esta variable no la utilizastes mas, ¿¡por eso sera que da error?

trata de probarlo tu haber si te da.
Con respecto a $conexion ya lo hice.
No se si sera ignorancia mia, pero la base de datos no la nombro en ninguna parte.

Gracias amigo respondeme pronto
Gracias y ayudame...... Please.

Te escribi en tu correo
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

Oops... (Parte 1)

Publicado por Diego Vélez (44 intervenciones) el 17/10/2003 21:32:21
Tienes razón, tenía unos errores. Tengo la costumbre de usar las variables $busqueda y $resultado par alas consultas y a veces se me mezclan, disculpa. Esta vez si probé el script y me funcionó.

$conexion=mysql_connect("","usuario","");//El primer parámetro indica el servidor, si lo dejas vacío se asume que es localhost. El segundo es el usuario y el tercero la contraseña, que también puede ser vacía(Así realmente exista una).
mysql_select_db("base_de_datos",$conexion);
if(!$conexion)
{
print("<h3>NO SE PUEDE REALIZAR LA CONEXIÓN</h3>");
exit;
}
$resultado=mysql_query("select historial_cliente.cod_pro, producto.nom_pro from historial_cliente, producto where historial_cliente.cod_pro = producto.cod_pro and historial_cliente.cod_cliente = '$cliente' order by historial_cliente.cod_pro",$conexion);//Si el código del cliente es numérico en la BD, entonces omite las comillas simples que limitan la variable $cliente. Siempre que un dato sea diferente de número, deben ir comillas que delimiten los valores de las variables. Yo asumo que el cliente lo lees desde una caja de texto o un combo llamada cliente, si tienes un nombre diferente, es el que debes colocar en vez de $cliente.
$filas=mysql_num_rows($resultado);
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

Oops... (Parte 2)

Publicado por Diego Vélez (44 intervenciones) el 17/10/2003 21:34:03
echo '<select name="combo_productos">';
for($i=0;$i<$filas;$i++)
{
$aux=mysql_result($resultado,$i,'cod_pro')." ".mysql_result($resultado,$i,'nom_pro'); //fíjate que estoy leyendo el código y el nombre del producto por cada fila y los estoy concatenando con un espacio en el medio, lo puedes cambiar para que sea cualquier caracter. Si esta línea te saca error, cambia 'cod_pro' por 0 y 'nom_pro' por 1
echo "<option>$aux</option>";//imprimo en el combo. Si quieres puedes agregarle un value al combo (Te lo recomiendo).
}//fin del ciclo.
echo '</select>';
Avísame cómo te va, mucha suerte.
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