Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General »

busquedas en la BBD (MySQL)

Estas en el tema de busquedas en la BBD (MySQL) en el foro de Bases de Datos General en Foros del Web. Hola a todos ! Estoy haciendo una script de búsqueda para una aplicación con php y mysql. Lo que quiero logra es que teniendo los ...
  #1 (permalink)  
Antiguo 31/01/2005, 10:24
 
Fecha de Ingreso: septiembre-2004
Mensajes: 203
Antigüedad: 19 años, 7 meses
Puntos: 0
busquedas en la BBD (MySQL)

Hola a todos ! Estoy haciendo una script de búsqueda para una aplicación con php y mysql. Lo que quiero logra es que teniendo los campos nombre, apellido y teléfono en el formulario de búsqueda pueda buscar a la persona en mi BBDD completando 1 solo campo de los 3 mencionados o especificar aun mas la búsqueda completando 1 mas o directamente los 3. yo lo intenté asi:
$query = "SELECT * FROM personas WHERE nombre='".$_POST['nombre']."' OR apellido='".$_POST['apellido`."' OR telefono='".$_POST['telefono']."' ORDER BY nombre";

Yo creo que esta línea no está del todo bien ... alguna sugerencia ????
Saludos y gracias de antemano.
__________________
Impala
  #2 (permalink)  
Antiguo 02/02/2005, 03:32
 
Fecha de Ingreso: enero-2005
Ubicación: Barcelona
Mensajes: 37
Antigüedad: 19 años, 2 meses
Puntos: 1
Prueba así:
Código PHP:
$db mysql_connect() ; 
mysql_query("SELECT * FROM personas WHERE 
                                                nombre='$nombre%'    
                                           OR apellido='$apellido%'   
                                           OR telefono='$telefono%'  
                                           ORDER BY nombre"
$db); 
Saludos !
  #3 (permalink)  
Antiguo 03/02/2005, 21:27
Avatar de H0m3r0J4y  
Fecha de Ingreso: abril-2002
Mensajes: 123
Antigüedad: 22 años
Puntos: 0
En lo que estan haciendo no esta mal, pero no es lo correcto. Ten en cuenta que si quieres hacer una consulta inclusiva debes usar AND y no OR.

Lo mejor es armar el SQL dependiendo de los parámetros pasados y luego ejecutarlo.
Ademas no debes usar = sino LIKE, o sea, con todo esto podria quedarte algo asi:


$where = "(nombre LIKE '%$nombre%' AND apellido LIKE '%$apellido%') OR telefono LIKE '%$telefono%'";

SELECT * FROM tablename WHERE $where
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 07:16.