Autor
|
Tema: Doble consulta mysql.. (Leído 9,959 veces)
|
mokoMonster
Desconectado
Mensajes: 301
<? ...
|
Buenas Hice una consulta que busca el articulo seleccionado por el usuario, pero tengo 2 tablas, 1) Catalogo y 2) Imagenes.. Lo que quiero es imprimir la imagen de el articulo correspondiente. session_start(); include("/secure/conex.php"); $link=Conectarse(); $busqueda=$_POST['busqueda']; $query=mysql_query("SELECT * FROM Catalogo WHERE noArticulo='".$busqueda."'",$link) or die(mysql_error());
<table width="80%" bgcolor="#CCCCCC" border="1" align="center" cellpadding="2" cellspacing="0" aling="center">
<tr><td><b> Imagen </b></td><td><b> Articulo </b></td><td><b> Descripción </b></td><td><b> Cantidad </b></td><td><b> Precio </b> </td></tr> <?php
$qur = mysql_num_rows($query);
if($qur > 0) {
while($row=mysql_fetch_array($query))
{
printf("<tr><td><b><center> %s </center></b></td><td> %s </td><td> %s </td><td><center> %d </center></td><td> %d </td></tr>",$row['imagen'],$row['noArticulo'],$row['descripcion'],$row['cantidad'],$row['precio']);
}
mysql_free_result($query);
mysql_close($link);
}
else
{
echo "No se encontraron resultados";
echo "<br /><br />";
}
?> </table> Obviamente $row['imagen'] debe de incluir la ruta de la imagen, se que tengo que hacer una consulta a la tabla imagenes, pero lo que no se me ocurre es como incluirla en $row['imagen'] . Saludos
|
|
|
En línea
|
"Se necesitaron unos instantes para cortarle la cabeza, pero se necesitara un siglo para producir otra igual." Lagrange
|
|
|
Shell Root
|
Consulta sobre INNER JOIN en mysql. Por ejemplo: -- Catalogo -- id_catalogo, nombre_catalogo, id_imagen -- Imagenes -- id_imagen, url_imagen SELECT id_catalogo, url_imagen FROM Catalogo INNER JOIN Imagenes ON Imagenes.id_imagen = Catalogo.id_imagen WHERE (id_catalogo = 1)
|
|
« Última modificación: 6 Agosto 2010, 21:52 pm por Shell Root »
|
En línea
|
Te vendería mi talento por poder dormir tranquilo.
|
|
|
mokoMonster
Desconectado
Mensajes: 301
<? ...
|
Muchas gracias por eso, ya leí un poco, pero parece que no le he entendido muy bien, intente lo siguiente: $query=mysql_query("SELECT * FROM Catalogo INNER JOIN Imagenes ON Imagenes.rutaImagen = Catalogo.noArticulo WHERE noArticulo='".$busqueda."'",$link) or die(mysql_error()); Pero me devuelve: Column 'noArticulo' in where clause is ambiguous.. Que estoy haciendo mal? O que no entiendo? Saludos
|
|
|
En línea
|
"Se necesitaron unos instantes para cortarle la cabeza, pero se necesitara un siglo para producir otra igual." Lagrange
|
|
|
Shell Root
|
Si te fijas en el ejemplo que te deje, use el mismo campo (por el cual se relacionan las tablas), para poder identificar de cual registro es esa imagen. Lo que vos tenes no cumple con esa condición. Muestranos las estructuras de esas 2 tablas o mejor por que campo se relacionan.
|
|
|
En línea
|
Te vendería mi talento por poder dormir tranquilo.
|
|
|
mokoMonster
Desconectado
Mensajes: 301
<? ...
|
Ok, pongo la estructura de las tablas. -- Table structure for table `Catalogo` --
CREATE TABLE `Catalogo` ( `id` bigint(20) NOT NULL auto_increment, `propietarioArticulo` char(10) collate latin1_general_ci NOT NULL, `noArticulo` char(45) collate latin1_general_ci NOT NULL, `descripcion` varchar(350) collate latin1_general_ci NOT NULL, `tipo` varchar(45) collate latin1_general_ci NOT NULL, `fechaAltaArticulo` date NOT NULL, `cantidad` int(3) NOT NULL, `precio` decimal(6,2) NOT NULL, `ipAltaArticulo` char(15) collate latin1_general_ci NOT NULL, PRIMARY KEY (`id`) ) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_general_ci AUTO_INCREMENT=85 ; -- Table structure for table `Imagenes` --
CREATE TABLE `Imagenes` ( `id` bigint(4) NOT NULL auto_increment, `usuarioImagen` varchar(10) collate latin1_general_ci NOT NULL, `noArticulo` varchar(25) collate latin1_general_ci NOT NULL, `rutaImagen` varchar(65) collate latin1_general_ci NOT NULL, `dateUploadImage` date NOT NULL, PRIMARY KEY (`id`) ) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_general_ci AUTO_INCREMENT=27 ;
Y se relacionan por el nombre del articulo, que es noArticulo. De verdad muchas gracias por tu ayuda
|
|
|
En línea
|
"Se necesitaron unos instantes para cortarle la cabeza, pero se necesitara un siglo para producir otra igual." Lagrange
|
|
|
Shell Root
|
Entonces sería más o menos así. SELECT Catalogo.id AS 'Código', Catalogo.noArticulo AS 'Código Articulo', Imagenes.rutaImagen AS 'Ruta Imagen' FROM Catalogo INNER JOIN Imagenes ON Imagenes.noArticulo = Catalogo.noArticulo WHERE(Catalogo.id = 1)
Printea la salida que te dá esta query.
|
|
|
En línea
|
Te vendería mi talento por poder dormir tranquilo.
|
|
|
mokoMonster
Desconectado
Mensajes: 301
<? ...
|
Bueno este ya no me tira error, eso es bueno Muuuchas Gracias Pero el codigo me queda inservible para la busqueda de los usuarios, en donde podria colocar $busqueda? La verdad es que aun ando confundido WHERE(Catalogo.noArticulo = '".$busqueda."') ??? Nop, no funciona asi
|
|
« Última modificación: 6 Agosto 2010, 22:56 pm por mokoMonster »
|
En línea
|
"Se necesitaron unos instantes para cortarle la cabeza, pero se necesitara un siglo para producir otra igual." Lagrange
|
|
|
Shell Root
|
Debe de funcionar, en la variable $busqueda, que se almacena?. Supongo que es el código del articulo o no?
|
|
|
En línea
|
Te vendería mi talento por poder dormir tranquilo.
|
|
|
mokoMonster
Desconectado
Mensajes: 301
<? ...
|
Almacena el nombre del articulo, por ejemplo, si yo busco "bebida" = $busqueda.. Mira de hecho si la sentencia es: $query=mysql_query("SELECT Catalogo.id AS 'Código', Catalogo.noArticulo AS 'Código Articulo', Imagenes.rutaImagen AS 'Ruta Imagen' FROM Catalogo INNER JOIN Imagenes ON Imagenes.noArticulo = Catalogo.noArticulo WHERE(Catalogo.noArticulo = '$busqueda')",$link) Y doy en el buscador "BEBIDA" devuelve una fila pero con la imagen rota y los demas campos vacios. Lo de la imagen es porque todavia no pongo bien el codigo de eso, pero lo demas no debe estar vacio
|
|
« Última modificación: 6 Agosto 2010, 23:09 pm por mokoMonster »
|
En línea
|
"Se necesitaron unos instantes para cortarle la cabeza, pero se necesitara un siglo para producir otra igual." Lagrange
|
|
|
Shell Root
|
WTF? entonces las 2 tablas, se relacionan por medio del nombre? o.O!, debería ser por el ID! PD: Est@s seguro de que estan relacionadas?
|
|
|
En línea
|
Te vendería mi talento por poder dormir tranquilo.
|
|
|
|
|