Código PHP:
$pegar = "SELECT * FROM propiedades WHERE ubicacion LIKE '%$palabra%' OR comodidades LIKE '%$palabra%' OR precio LIKE '%$palabra%' OR codigo LIKE '%$palabra%' LIMIT $inicial,$cantidad";
¿hay alguna forma?
gracias
| ||||
usar varios criterios en busqueda Hola, tengo una base de datos y programe un buscador que al teclear una palabra en un formulario me muestra todos los registros que contengan esa palabra, el codigo que uso es: Código PHP: ¿hay alguna forma? gracias
__________________ Foro de futbol andaluz, todos los equipos de futbol de Andalucia |
| |||
Lo ideal sería que usases busquedas tipo "FULL text search" (o busquedas de texto completo). (supongo que usas Mysql? .. ) Un tutorial al respecto: http://www.mysql-hispano.org/page.php?id=15 Tiene su pequeño inconveniente .. no acepta palabras a buscar de menos de 3 caracteres .. pero si eso no es relevante en tu sistema .. es una excelente opción (óptima por lo demás pues se indexan esos campos y demás historias para facilitar las busquedas). Un saludo,
__________________ Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo. |
| ||||
gracias Cluster. Se me olvido comentar que tengo la base de datos mysql con mas de 300 registros ¿algun incoveniente porque ya este todo creado y con datos? temo que se pierdan
__________________ Foro de futbol andaluz, todos los equipos de futbol de Andalucia Última edición por pereztroff; 19/04/2006 a las 12:28 |
| |||
Cita: mm .. En principio no tendría que tener problemas para camibiar el tipo de indice a uno de "texto completo". Lo que hace ese proceso es crear indices .. nada más. De todas formas como siempre, hazte cópia de seguridad y haz tus pruebas. (Yo no lo he usado con una BBDD ya creada).
Iniciado por pereztroff gracias Cluster. Se me olvido comentar que tengo la base de datos mysql con mas de 300 registros ¿algun incoveniente porque ya este todo creado y con datos? temo que se pierdan Un saludo,
__________________ Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo. |
| ||||
Cita: Cluster en un post anterior me explicaste eso...Las busquedas "FULL TEXT" son así .. tienen ese límite de caracteres en la busquedas en "pró" de facilidad de uso y consumo de recursos (a la hora de generar esos indices que usan ..). Lo que podrías hacer es vía PHP detectar que en tu cadena de busqueda tienes palabras de menos de 3 caracteres y tratar la busqueda en SQL simple tipo: SELECT * FROM tabla WHERE campo LIKE '%$palabra%' e ir componiendo tu sentencia SQL a base de "OR" y bloques "LIKE" como palabras de 3 caracteres tengas. El lío será cuando tengas palabras de menos de 3 caracteres junto con alguna de más caracteres: ¿buscas primero en "full text"? y luego por los términos de menos de 3 caracteres para unificar los resultados? .. podría ser. Un saludo, ok.- lo aplique. pero los resultados a mi pensar y observación eran pocos éticos.- con respecto a cuando se daba una búsqueda full text.- por ejemplo una de los detalles mas notable era cuando organizaba los resultados dependiendo de un "AS score" en la búsqueda, en donde obviamente entrarían en juego todas las palabras con mas frecuencia en los resultados de búsqueda, tenia que incluir todas las palabras ya sean de 3 letras o cuantas letras fueran...en fin será que hay otras formas de romper moderadamente esas reglas de 3 letras, "o no romperlas" pero si empatarle el juego al MySQL vía arreglos php.-? ¿ALGO? - ¿Cualquier Cosa? - ¿Carta bajo la manga? ¿Cualquier altimaña? Saludos.- |
| |||
Cita: Yo lo único que conozco es la técnica de generar esa sentencia SQL a base de grupos de "campo LIKE $dato" + Operador (AND/OR) vía PHP. No es tan "óptimo" como una busqueda en "texto completo" (por ejemplo te quedas sin la opción de "relevancia" para hacer ordenamientos por n° de ocurrencias de la palabra en el campo(s) que buscas).
Iniciado por xyyy7 Cluster, Sabrás de algunas técnicas o trucos que bajo arreglos php o sentencias SQL o combinaciones de ambas se pueda hacer sacar esas palabras de tres letras en las consultas tipo FULL TEXT... ¿ALGO? - ¿Cualquier Cosa? - ¿Carta bajo la manga? ¿Cualquier altimaña? Venditas 3 Letras! Saludos.- Un saludo,
__________________ Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo. |
| ||||
Cita: a eso mismo me referia en mi post anterior a este.-
Iniciado por Cluster (por ejemplo te quedas sin la opción de "relevancia" para hacer ordenamientos por n° de ocurrencias de la palabra en el campo(s) que buscas). Venditas palabras de tres letras jejejej! Gracias Saludos.- |
| ||||
Cita: Hey amigo... si se usara asi como lo estas describiendo MySQL tipo de busqueda FULL TEXT...
Iniciado por Cluster Lo ideal sería que usases busquedas tipo "FULL text search" (o busquedas de texto completo). (supongo que usas Mysql? .. ) Un tutorial al respecto: http://www.mysql-hispano.org/page.php?id=15 Tiene su pequeño inconveniente .. no acepta palabras a buscar de menos de 3 caracteres .. pero si eso no es relevante en tu sistema .. es una excelente opción (óptima por lo demás pues se indexan esos campos y demás historias para facilitar las busquedas). Un saludo, ¿Hasta cuantos caracteres o cuantas palabras se podrian aplicar a este tipo de busqueda? osea me explico... Cita: bueno hay tenemos 6 palabas y 53 caracteres... pero hasta cuanto soporta este tipo de busqueda? $buscar = "palabra1 palabra2 palabra3 palabra4 palabra5 palabra6"; Saludos.- |
| |||
Cita: Por mi parte desconozco los límites superiores o en total .. sólo sé que el limite inferior está en palabras de menos de 3 caracteres.
Iniciado por xyyy7 Hey amigo... si se usara asi como lo estas describiendo MySQL tipo de busqueda FULL TEXT... ¿Hasta cuantos caracteres o cuantas palabras se podrian aplicar a este tipo de busqueda? osea me explico... bueno hay tenemos 6 palabas y 53 caracteres... pero hasta cuanto soporta este tipo de busqueda? Saludos.- Podrías consultar en el foro de Base de datos -> Mysql a ver si te resuelven la duda (y/o ver la documentación oficial de Myql al respecto). Un saludo,
__________________ Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo. |