elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Los 10 CVE más críticos (peligrosos) de 2020


+  Foro de elhacker.net
|-+  Programación
| |-+  Desarrollo Web
| | |-+  PHP (Moderador: #!drvy)
| | | |-+  Doble consulta mysql..
0 Usuarios y 2 Visitantes están viendo este tema.
Páginas: [1] 2 Ir Abajo Respuesta Imprimir
Autor Tema: Doble consulta mysql..  (Leído 9,935 veces)
mokoMonster


Desconectado Desconectado

Mensajes: 301


<? ...


Ver Perfil
Doble consulta mysql..
« en: 6 Agosto 2010, 21:34 pm »

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><bImagen </b></td><td><bArticulo </b></td><td><bDescripci&#243;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
Moderador Global
***
Desconectado Desconectado

Mensajes: 3.724


<3


Ver Perfil WWW
Re: Doble consulta mysql..
« Respuesta #1 en: 6 Agosto 2010, 21:46 pm »

Consulta sobre INNER JOIN en mysql. Por ejemplo:
Código
  1. -- Catalogo
  2.   -- id_catalogo, nombre_catalogo, id_imagen
  3.  
  4. -- Imagenes
  5.   -- id_imagen, url_imagen
  6.  
  7. SELECT id_catalogo, url_imagen
  8.  FROM Catalogo
  9.    INNER JOIN Imagenes
  10.      ON Imagenes.id_imagen = Catalogo.id_imagen
  11. 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 Desconectado

Mensajes: 301


<? ...


Ver Perfil
Re: Doble consulta mysql..
« Respuesta #2 en: 6 Agosto 2010, 22:07 pm »

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
Moderador Global
***
Desconectado Desconectado

Mensajes: 3.724


<3


Ver Perfil WWW
Re: Doble consulta mysql..
« Respuesta #3 en: 6 Agosto 2010, 22:28 pm »

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 Desconectado

Mensajes: 301


<? ...


Ver Perfil
Re: Doble consulta mysql..
« Respuesta #4 en: 6 Agosto 2010, 22:34 pm »

Ok, pongo la estructura de las tablas.



Código:
-- 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 ;

Código:
-- 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
Moderador Global
***
Desconectado Desconectado

Mensajes: 3.724


<3


Ver Perfil WWW
Re: Doble consulta mysql..
« Respuesta #5 en: 6 Agosto 2010, 22:46 pm »

Entonces sería más o menos así.
Código
  1. SELECT Catalogo.id AS 'Código', Catalogo.noArticulo AS 'Código Articulo', Imagenes.rutaImagen AS 'Ruta Imagen'
  2.  FROM Catalogo
  3.    INNER JOIN Imagenes ON Imagenes.noArticulo  = Catalogo.noArticulo
  4. 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 Desconectado

Mensajes: 301


<? ...


Ver Perfil
Re: Doble consulta mysql..
« Respuesta #6 en: 6 Agosto 2010, 22:50 pm »

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 :(

Código:
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
Moderador Global
***
Desconectado Desconectado

Mensajes: 3.724


<3


Ver Perfil WWW
Re: Doble consulta mysql..
« Respuesta #7 en: 6 Agosto 2010, 22:58 pm »

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 Desconectado

Mensajes: 301


<? ...


Ver Perfil
Re: Doble consulta mysql..
« Respuesta #8 en: 6 Agosto 2010, 22:59 pm »

Almacena el nombre del articulo, por ejemplo, si yo busco "bebida" = $busqueda..

Mira de hecho si la sentencia es:

Código:
$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
Moderador Global
***
Desconectado Desconectado

Mensajes: 3.724


<3


Ver Perfil WWW
Re: Doble consulta mysql..
« Respuesta #9 en: 6 Agosto 2010, 23:10 pm »

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.
Páginas: [1] 2 Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
¿Cómo hacer una consulta doble a una tabla?
Bases de Datos
1mpuls0 5 8,656 Último mensaje 10 Junio 2012, 05:16 am
por 1mpuls0
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines