Ver Mensaje Individual
  #1 (permalink)  
Antiguo 14/02/2012, 20:46
Avatar de xarmagedonx
xarmagedonx
 
Fecha de Ingreso: marzo-2009
Mensajes: 360
Antigüedad: 15 años, 2 meses
Puntos: 29
Pregunta Error con like y php

Hola a todos!!, estoy teniendo un problema que no me deja dormir jaja, mediante la función explode() logré que el like pudiera aceptar la consulta de más de 1 palabra.

Ahora el problema que tengo es que quiero encontrar el resultado llamado "La historia de google", al buscar "google" este resultado aparece en la primera página, pero cuando busco "historia de google" el resultado ya no aparece en la primera, y en cambio aparecen solo resultados de historia.

El problema es que si busco 2 o más palabras es que divide las palabras para dar distintos resultados, pero si un resultado contiene las dos palabras no lo toma en cuenta como para que este aparezca primero, el código es el siguiente:

Código PHP:
// un poco más arriba aparecen otros explode, pero no creo que eso sea lo importante
$palabras=explode(' ',$frase); 
$condicion=''
foreach (
$palabras as $palabra) { 
  if (
$condicion!=''$condicion.=' OR '
  
$condicion.="(webDescripcion LIKE '%$palabra%')"
}
$sssqlmysql_query("SELECT distinct uDR.t as webTitulo, uDR.d as webDescripcion, uDR.w as weburl, uDR.k as webkeywords  
from
((select s1.webTitulo as t, s1.webDescripcion as d, s1.weburl as w, s1.webkeywords as k, 1 as priority from webs s1 where  $condicion AND s1.webTitulo like '%$frase%')
union
(select s2.webTitulo as t, s2.webDescripcion as d, s2.weburl as w, s2.webkeywords as k, 2 as priority from webs s2 where  $condicion1 AND s2.webkeywords like '%$frase%')
union
(select s3.webTitulo as t, s3.webDescripcion as d, s3.weburl as w, s3.webkeywords as k, 3 as priority from webs s3 where  $condicion2 AND s3.webDescripcion like '%$frase%')) uDR
order by uDR.priority "
$server_link

                              or die(
mysql_error()); 
Probé cambiar el OR por un AND, también crear un elseif ($condicion!='') $condicion.=' OR '; y que el if tuviera un AND, pero no funciono.

No sabía muy bien si esta pregunta iba en php por el explode, o en mysql por la consulta, si va en mysql porfavor díganme asi lo cambio.

Alguien sabe como solucionar esto???. Saludos y gracias a todos!!