Autor Tema: Buscador en mas de una tabla  (Leído 459 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado expecimen

  • Usuario Junior
  • **
  • Mensajes: 56
  • Puntuación: 1
  • Sexo: Masculino
    • Ver Perfil
    • Asociación Cooperativa Kodama Tecnologia, c.a.
Buscador en mas de una tabla
« : 09 de enero de 2011, 02:30:42 am »
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
Tabla3
Tabla4
Datos a buscar: Placa

yo utilizo esto con una sola tabla y funciona:

Código: [Seleccionar]
<?php
$conexion
=mysql_connect(DB_HOSTDB_USERDB_PASSWORD) or
die(
"Problemas en la conexion");
mysql_select_db(2010,$conexion) or
die(
"Problemas en la seleccion de la base de datos");
$registros=mysql_query("select * from Tabla1 where placa=&#39;$_REQUEST[placa]&#39;",$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 para que busque un numero de placa en las 4 tablas:

Código: [Seleccionar]
$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 :abajo:

y la verdad no se que me quiere decir

espero me puedan ayudar

Desconectado oyepez003

  • Usuario Dedicado
  • ***
  • Mensajes: 143
  • Puntuación: 6
  • Sexo: Masculino
  • La suerte esta en el conocimiento
    • Ver Perfil
    • Soluciones tecnológicas YepSua C.A.
Re:Buscador en mas de una tabla
« Respuesta #1 : 09 de enero de 2011, 01:33:29 pm »
Hola ese error da por que en algunas de las dos tablas tienes el mismo nombre de campo en este caso "placa".....

Para eso agregale un alias a cada tablar en tu query:

$registros=mysql_query("select * from Tabla1 as t1 ,Tabla2 as t2 , Tabla3 as t3 , Tabla4 as t4  where t1.placa='$_REQUEST[placa]'",$conexion)

y asi sucesivamente.

Saludos.
--
Omar Yepez
http://www.yepsua.com The YepSua team
http://jquery4php.sourceforge.net/ The jQuery4PHP project
Sigueme: http://twitter.com/oyepez003

Desconectado Carlos Belisario

  • Usuario Dedicado
  • ***
  • Mensajes: 152
  • Puntuación: 9
  • Sexo: Masculino
    • Ver Perfil
    • Carlosbelisario.com
Re:Buscador en mas de una tabla
« Respuesta #2 : 09 de enero de 2011, 01:45:46 pm »
ademas de lo que te indico el amigo, pudieras utilizar consultas JOIN de manera que tu busqueda sea mas rapida, saludos

Desconectado Alexander Garzon

  • Alexander Garzon
  • Administrador
  • Fanático
  • *****
  • Mensajes: 288
  • Puntuación: 15
  • Sexo: Masculino
    • Ver Perfil
    • PHP de Venezuela
Re:Buscador en mas de una tabla
« Respuesta #3 : 09 de enero de 2011, 02:32:55 pm »
y donde haya JOIN crear INDICES para acelerar las consultas.
Alexander Garzon
Director
PHP de Venezuela

Desconectado cyberjunior

  • Usuario Junior
  • **
  • Mensajes: 53
  • Puntuación: 1
    • Ver Perfil
Re:Buscador en mas de una tabla
« Respuesta #4 : 09 de enero de 2011, 02:33:34 pm »
Buenas Tardes

select * from tabla1 t1 join tabla2 t2 on t1.placa = t2.placa
                                     join tabla3 t3 on t1.placa = t3.placa
                                     join tabla3 t4 on t1.placa = t4.placa

Esto te traerá todos los campos de todas las tablas donde las placas sean iguales, si deseas mostrar solo ciertos campos de ciertas tablas seria:

select t1.algo, t2.algo, t3.algo, t4.algomas from tabla1 t1 join tabla2 t2 on t1.placa = t2.placa
                                                                                           join tabla3 t3 on t1.placa = t3.placa
                                                                                           join tabla3 t4 on t1.placa = t4.placa


Con esta consulta te creas una vista y luego en la aplicación filtras esta vista según la placa buscada.

Pruébalo y avisas como te fue

Saludos.
 
Lic. Luis Vásquez

PHP de Venezuela

Re:Buscador en mas de una tabla
« Respuesta #4 : 09 de enero de 2011, 02:33:34 pm »

 

PHP de Venezuela on Facebook