Foros del Web » Programando para Internet » PHP »

Buscar en dos tablas

Estas en el tema de Buscar en dos tablas en el foro de PHP en Foros del Web. Saludos de nuevo, les molesto en esta ocasion es para que le den un ayuda en esto que yo se que es algo simple pero ...
  #1 (permalink)  
Antiguo 09/01/2011, 00:53
 
Fecha de Ingreso: octubre-2006
Ubicación: Ciudad Ojeda, Venezuela
Mensajes: 123
Antigüedad: 17 años, 6 meses
Puntos: 0
Pregunta Buscar en dos tablas

Saludos de nuevo, les molesto en esta ocasion es para que le den un ayuda en esto que yo se que es algo simple pero busco y busco y sigo los ejemplo pero no me procesa, bien la cosa es la siguiente tengo un sistema de buscador de datos en php que me busca unos datos en mi BD SQL si le pongo a buscar en un sola tabla me busca de maravilla el problema es cuando le indico que busque en 4 tablas.

Lo que quiero es que me busque en 4 tablas en una BD el datos a buscar es el numero de Placa el cual es igual para todas.

BD: Carro
Tabla1
Tabla2
Tabla2
Tabla3
Datos a buscar: Placa

yo utilizo esto con una sola tabla y funciona:

Código PHP:
<?php
$conexion
=mysql_connect(DB_HOSTDB_USERDB_PASSWORD) or
die(
"Problemas en la conexion");
mysql_select_db(2010,$conexion) or
die(
"Problemas en la selección de la base de datos");
$registros=mysql_query("select * from Tabla1 where placa='$_REQUEST[placa]'",$conexion) or die("Problemas en el select:".mysql_error());
if (
$reg=mysql_fetch_array($registros))


else 
header("location:datosv.php?enc=no");
mysql_close(); 
?>
pero cuando le agrego las 4 tablas:

Código PHP:
$registros=mysql_query("select * from Tabla1,Tabla2, Tabla3, Tabla4  where placa='$_REQUEST[placa]'",$conexion
No funciona es mas me sale el siguiente error: Problemas en el select:Column 'placa' in where clause is ambiguous

y la verdad no se que me quiere decir

espero me puedan ayudar
  #2 (permalink)  
Antiguo 09/01/2011, 04:22
Avatar de repara2  
Fecha de Ingreso: septiembre-2010
Ubicación: München
Mensajes: 2.445
Antigüedad: 13 años, 7 meses
Puntos: 331
Respuesta: Buscar en dos tablas

El error significa que el field placa existe en todas las tablas, al poner SELECT * ... el servidor no sabe cuál de todos los valores "placa" debe devolver.
Esto se soluciona con un where o left join indicando las relaciones entre tablas. Ej:

Código:
SELECT T1.PLACA, T2.PLACA FROM TABLA1 AS T1, TABLA2 AS T2 WHERE T1.ID_PLACA = T2.ID_PLACA
Sin embargo, si el mismo campo placa se repite en todas las tablas parece que el diseño de la DB es incorrecto. La select anterior devoverá registros de 2 columnas, tú buscas registros que contengan el campo placa una sola vez. Si posteas la estructura de tablas será más facil sacarlo, un saludo
  #3 (permalink)  
Antiguo 09/01/2011, 04:34
Avatar de santris  
Fecha de Ingreso: agosto-2009
Ubicación: Sant Feliu de Llobregat
Mensajes: 955
Antigüedad: 14 años, 8 meses
Puntos: 66
Respuesta: Buscar en dos tablas

Hola,
prueba con esta consulta, si no funciona investiga con 'inner join'.

Código PHP:
$registros=mysql_query("select * from Tabla1, Tabla2, Tabla3, Tabla4  where tabla1.placa='$_REQUEST[placa]' and tabla2.placa='$_REQUEST[placa]' and tabla3.placa='$_REQUEST[placa]' and tabla4.placa='$_REQUEST[placa]'"$conexion); 
saludos,

edito: perdón repara2, no ví tu resp..
__________________
Tu álbum de cromos online!!

Última edición por santris; 09/01/2011 a las 04:42

Etiquetas: dos, tablas
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 18:46.