Comunidad de diseño web y desarrollo en internet online

Consulta multitabla

Citar            
MensajeEscrito el 18 Dic 2012 01:51 pm
Hola a todos , bueno en estos dias eh tratado de hacer un sistema en el que cuyo sistema implementa hacer una consulta a varias tablas , lo que quiero hacer en realidad es hacer una búsqueda de datos , en el que por ejemplo pregunta el nombre ,apellido y dni de una tabla , la calle de otra tabla , y el teléfono de otra tabla.

Esto es lo que ago: una consulta multitabla

Código PHP :

$sql="select * from telefonos t ,direcciones d, personas p where p.nombre='".$_POST["nombre"]."' or p.apellido='".$_POST["apellido"]."' or p.dni='".$_POST["dni"]."' or t.numero='".$_POST["telefono"]."' or d.calle='".$_POST["calle"]."';";


La cosa es que en la bd tengo guardado 3 datos nomas , y cuando hago la consulta en cualquier campo de los mencionados me salen como 300 veces esos datos , la verdad nose que es lo que estoy haciendo mal

Si me podrían ayudar seria buenísimo

Por skyfrox

3 de clabLevel



Genero:Masculino  

entusiasta programador web

chrome
Citar            
MensajeEscrito el 18 Dic 2012 01:56 pm
$res=mysql_query($sql);


while($reg=mysql_fetch_assoc($res))
{
echo "Nombre: ".$reg["nombre"]."<br>";
echo "Apellido: ".$reg["apellido"]."<br>";
echo "DNI: ".$reg["dni"]."<br>";

}


Si de algo sirve ahi esta el resto de la funcion

Por skyfrox

3 de clabLevel



Genero:Masculino  

entusiasta programador web

chrome
Citar            
MensajeEscrito el 18 Dic 2012 07:48 pm
Lo que sucede es que en la consulta SQL no estás indicando ninguna relación entre las tablas, por lo tanto SQL asume que todos los registros de una tabla se relacionan con todos los registros de la otra y es por eso que te aparecen montones de registros.

No sé la estructura de las tablas que estás usando pero supongo que por ejemplo personas debe tener un índice y telefono debe tener un campo que relacione con persona. Esa relación tienes que indicar en el WHERE además de la consulta que quieres hacer.

Por DriverOp

Claber

2510 de clabLevel



 

opera

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.