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

Busqueda de direcciones

Estas en el tema de Busqueda de direcciones en el foro de Bases de Datos General en Foros del Web. Buenas noches: tengo una tabla con direcciones divididas en address, city, state, zipcode y un buscador simple de un solo campo donde el usuario escribe ...
  #1 (permalink)  
Antiguo 12/10/2010, 20:29
Avatar de pumpkinpie  
Fecha de Ingreso: abril-2002
Mensajes: 309
Antigüedad: 22 años
Puntos: 0
Información Busqueda de direcciones

Buenas noches:

tengo una tabla con direcciones divididas en address, city, state, zipcode
y un buscador simple de un solo campo donde el usuario escribe la direccion que busca, como puedo comparar lo que escribe el usuario con los campos de la tabla???

me gustaria hacer algo asi:

...where %address% like $valordeformulario OR city like $valordeformulario OR state like $valordeformulario OR zipcode like $valordeformulario


No se si me explico, lo que quiero decir es buscar el valor del campo en la direccion que manda el usuario en ves de que sea alreves. Se puede?


Gracias!!
__________________
:pirata: :arriba:
E-ClipseMx Sistemas & Web...Tus ideas en linea!
  #2 (permalink)  
Antiguo 13/10/2010, 15:34
Colaborador
 
Fecha de Ingreso: enero-2007
Ubicación: México
Mensajes: 2.097
Antigüedad: 17 años, 3 meses
Puntos: 447
Respuesta: Busqueda de direcciones

Hola pumpkinpie, no entiendo muy bien a qué te refieres con búsqueda al revés, pero creo que es acerca del uso del operador % en el like

Este operado se deben utilizar sobre la palabra que estás buscando, no sobre el campo donde estás buscando, lo correcto es lo siguiente:

where address like '%palabra_a_buscar%'

Saludos
Leo.
  #3 (permalink)  
Antiguo 13/10/2010, 18:23
Avatar de pumpkinpie  
Fecha de Ingreso: abril-2002
Mensajes: 309
Antigüedad: 22 años
Puntos: 0
De acuerdo Respuesta: Busqueda de direcciones

Buenas tardes Leonardo:

gracias por tu respuesta, encontre lo que buscaba, resulta que si se puede hacer lo que decia:

'$address' like CONCAT('%', city, '%')

donde $address es la palabra a buscar y city es el campo.

Si alguien sabe la manera optima de hacer busquedas sobre direcciones le agradezco su aporte.

Saludos!
__________________
:pirata: :arriba:
E-ClipseMx Sistemas & Web...Tus ideas en linea!
  #4 (permalink)  
Antiguo 14/10/2010, 09:07
Colaborador
 
Fecha de Ingreso: enero-2007
Ubicación: México
Mensajes: 2.097
Antigüedad: 17 años, 3 meses
Puntos: 447
Respuesta: Busqueda de direcciones

Hola pumpkinpie, no sé qué DBMS estés manejando, pero sigo sin entender la lógica de tu consulta. Supongamos que tu campo city tiene los siguientes valores:

Código:
Puerto Vallarta
Puerto Príncipe
Puerto de Palos
Ahora bien, si el usuario teclea 'Puerto' lo que propones sería equivalente a hacer las siguientes comparaciones:

Código:
'Puerto' like '%Puerto Vallarta%' 
'Puerto' like '%Puerto Príncipe%'
'Puerto' like '%Puerto de Palos%'
lo cual siempre regresaría un falso. Sigo pensando que lo correcto es hacer esto:

Código:
'Puerto Vallarta' like '%Puerto%' 
'Puerto Príncipe' like '%Puerto%' 
'Puerto de Palos' like '%Puerto%'
que en tu caso creo sería algo así

Código:
city like CONCAT('%', $address, '%')
Pero si te funciona lo que pones, pues adelante.

Saludos
Leo.
  #5 (permalink)  
Antiguo 14/10/2010, 09:32
Avatar de pumpkinpie  
Fecha de Ingreso: abril-2002
Mensajes: 309
Antigüedad: 22 años
Puntos: 0
Exclamación Respuesta: Busqueda de direcciones

El problema es que normalmente la direccion que pone el usuario es mas grande que mis campos, por ejemplo:

el usuario busca: 280 Capital Ave San Jose, CA
yo tengo los campos address, city, state, zipcode

address: 280 Capital Ave
city: San Jose
State: CA

asi que si busco '280 Capital Ave San Jose, CA' en address resulta vacio, si busco: 280 Capital Ave San Jose, CA en city tambien y asi.

En cambio si busco: 280 Capital Ave en '280 Capital Ave San Jose, CA' si lo encuentra.

Espero haberme explicado mejor esta ves, Gracias por tus respuestas Leo.

Saludos!
__________________
:pirata: :arriba:
E-ClipseMx Sistemas & Web...Tus ideas en linea!
  #6 (permalink)  
Antiguo 14/10/2010, 10:36
Colaborador
 
Fecha de Ingreso: enero-2007
Ubicación: México
Mensajes: 2.097
Antigüedad: 17 años, 3 meses
Puntos: 447
Respuesta: Busqueda de direcciones

Ok, creo que ahora si te entendí por qué necesitas hacerlos así. Mira, el hacer un buen buscador puede resultar bastante complejo, sobre todo en tu caso que permites realizar búsquedas compuestas (con más de una palabra). Sigues sin mencionar qué DBMS estás utilizando, pero imagino que puedes ser MySQL, SQL Server o tal vez Oracle.

Te recomiendo que investigues acerca de BÚSQUEDAS DE TEXTO COMPLETO o BUSQUEDAS FULL-TEXT. Este tipo de búsquedas es ideal para lo que quieres hacer.

Saludos.
Leo.
  #7 (permalink)  
Antiguo 14/10/2010, 10:41
Avatar de pumpkinpie  
Fecha de Ingreso: abril-2002
Mensajes: 309
Antigüedad: 22 años
Puntos: 0
Mensaje Respuesta: Busqueda de direcciones

Gracias Leo, en efecto es MySql

Saludos!
__________________
:pirata: :arriba:
E-ClipseMx Sistemas & Web...Tus ideas en linea!
  #8 (permalink)  
Antiguo 14/10/2010, 11:11
Colaborador
 
Fecha de Ingreso: enero-2007
Ubicación: México
Mensajes: 2.097
Antigüedad: 17 años, 3 meses
Puntos: 447
Respuesta: Busqueda de direcciones

Checa esta página, creo que explica de manera bastante sencilla el uso de las búsquedas FULL-TEXT con MySQL

http://blog.unijimpe.net/busquedas-fulltext-en-mysql/


Saludos
Le

Etiquetas: direcciones, busquedas
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 01:19.