Ver Mensaje Individual
  #1 (permalink)  
Antiguo 01/02/2012, 16:40
Avatar de xarmagedonx
xarmagedonx
 
Fecha de Ingreso: marzo-2009
Mensajes: 360
Antigüedad: 15 años, 8 meses
Puntos: 29
Exclamación Problema con buscador interno (order by)

Hola a todos!, estoy teniendo un problema con mi buscador interno en php y mysql.

Me dijeron que sería mejor publicar el problema que tengo en esta sección.

Lo que intento hacer es que al buscar una palabra o frase, los resultados se ordenen por el lugar donde se encuentre dicha frase o palabra. Quisiera que primero aparezcan los resultados que tengan la palabra en el título, luego los que tengan la palabra en la descripción y por último el que tenga la palabra en las keywords.

Estuve intentando con order by, pero no logro ordenarlos como quiero, algo debo estar haciendo mal, les dejo el código:

Código PHP:
// verificar que se haya enviado una consulta 
if(isset($_GET['buscar']) && $_GET['buscar'] == 'Buscar'){ 
    
$frase htmlspecialchars($_GET['frase']); 
    
// hacer la consulta
$sssql mysql_query("SELECT webTitulo, webDescripcion, weburl, 
                              MATCH (webTitulo, webDescripcion, weburl, webkeywords) 
                              AGAINST ('$frase' IN BOOLEAN MODE) 
                              FROM webs
                              WHERE MATCH (webTitulo, webDescripcion, webkeywords)
                              AGAINST ('$frase' IN BOOLEAN MODE) 
                              ORDER BY webkeywords DESC, webTitulo ASC "
$server_link
                              or die(
mysql_error());
    
$sqlBuscar mysql_query("SELECT webTitulo, webDescripcion, weburl, 
                              MATCH (webTitulo, webDescripcion, weburl, webkeywords) 
                              AGAINST ('$frase' IN BOOLEAN MODE)
                              FROM webs 
                              WHERE MATCH (webTitulo, webDescripcion, webkeywords)
                              AGAINST ('$frase' IN BOOLEAN MODE) 
                              ORDER BY webkeywords DESC, webTitulo ASC
                              LIMIT $inicio, $TAMANO_PAGINA "
$server_link
                              or die(
mysql_error()); 
Resumiendo:

Los resultados deberían aparecer así:

1º Los que tengan la palabra buscada en el título
2º Los que tengan la palabra buscada en la descripción.
3º Los que tengan la palabra buscada en las keywords.

Saludos y gracias!!!