Foros del Web » Programando para Internet » PHP »

Consultas PHP y MySQL exactas

Estas en el tema de Consultas PHP y MySQL exactas en el foro de PHP en Foros del Web. Hola.. creo que me he vuelto un tanto confuso, sobre todo porque no logro que mi busqueda tenga el 100% de efectividad. EL motivo: Bueno, ...
  #1 (permalink)  
Antiguo 10/12/2009, 15:00
Avatar de loncho_rojas
Colaborador
 
Fecha de Ingreso: octubre-2008
Ubicación: En el mejor lugar del mundo
Mensajes: 2.704
Antigüedad: 15 años, 5 meses
Puntos: 175
Consultas PHP y MySQL exactas

Hola.. creo que me he vuelto un tanto confuso, sobre todo porque no logro que mi busqueda tenga el 100% de efectividad. EL motivo:

Bueno, quiero que mi buscador encuentre palabras exactas, y palabras coincidentes, de acuerdo a lo que se introduzca, entendiendo que mis campos en la BD estan con FULLTEXT las que quiero que revise de manera mas amplia, entonces,

Si el usuario ingreso 1 sola palabra genero una consulta a la base de datos con un LIKE, de esta manera:

Código PHP:
$query_Rs="SELECT * FROM tabla
           WHERE campo1 LIKE LOWER('%$buscar%') 
           OR campo2 LIKE LOWER('%$buscar%') 
SI el usuario ingreso mas de una palabra, genero una busqueda con MATCH AGAINST pero en BOOLEAN MODE, algo asi:

Código PHP:
$query_Rs "SELECT campo1, campo2, campo3,
            MATCH (campo1, campo2)
            AGAINST ('$buscar' IN BOOLEAN MODE) AS coincidencias
            FROM tabla
            WHERE MATCH (campo1, campo2)
            AGAINST ('$buscar' IN BOOLEAN MODE)
            ORDER BY coincidencias DESC"

pero el problema concreto es el siguiente,

1- Si busco la palabra "Diseño", directamente no me la encuentra, creo que es por la Ñ, aunque no se como solucionar esto de buena a primeras, ya intente cambiar el COLLATE de la BD, pero debo introducir en las tablas con caracteres UTF8, tipo ñ y luego las imprimo con UTF8_DECODE.

2- Si busco "Taller de autos", no me lo reconoce igual que "Taller de Autos", es decir, hace una leve diferencia entre una palabra con mayuscula, y minusculas, aunque sea la misma.

Alguien podria orientarme mejor, o si existe alguna solucion mas apta.

Gracias
__________________
Ayudo con lo que puedo en el foro, y solo en el foro.. NO MENSAJES PRIVADOS.. NO EMAILS NI SKYPE u OTROS.

Antes de hacer un TOPICO piensa si puedes hallarlo en Google o en el Buscador del Foro...

Última edición por loncho_rojas; 10/12/2009 a las 15:51
  #2 (permalink)  
Antiguo 10/12/2009, 15:29
Avatar de loncho_rojas
Colaborador
 
Fecha de Ingreso: octubre-2008
Ubicación: En el mejor lugar del mundo
Mensajes: 2.704
Antigüedad: 15 años, 5 meses
Puntos: 175
Respuesta: Consultas PHP y MySQL exactas

Cita:
Me olvidaba, tambien surge como problema que,

Al momento de traer los resultados, los trae, pero interpreta las cosas de manera distinta, puesto que si busco "Taller", me trae los resultados que tiene conicidencias, incluso, hago que se impriman los logos de estos, por ejemplo, me imprime el TALLER GONZALEZ, cuya descripcion contiene "Taller" en algun lugar (logico).

Sin embargo, si busco, "Taller de motos", los resultados evidentemente se amplian, pero ya deja de imprimirme el logo, entendiendo que las palabras o frases se encuentran en la descripcion de la columna, pero no se porque no trae mas la columna del logo, o sea el $Row['logo'] que hago mediante un ECHO;, sobre todo si la palabra coincidente es solo la 2ª, pero en todos los casos, deja de imprimirme los logos, salvo que coincida exactamente con el registro, si solo coincide 1 palabra de las 2, no lo trae.. en fin.. ayuda
ESTO YA LO SOLUCIONE, ERA UNA GANZADA.. FAVOR, EL POST Nº1, sobre todo el tema de las Ñ.. ya le i mucho y no encuentro solu
__________________
Ayudo con lo que puedo en el foro, y solo en el foro.. NO MENSAJES PRIVADOS.. NO EMAILS NI SKYPE u OTROS.

Antes de hacer un TOPICO piensa si puedes hallarlo en Google o en el Buscador del Foro...

Última edición por loncho_rojas; 10/12/2009 a las 15:49
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 09:36.