Ver Mensaje Individual
  #8 (permalink)  
Antiguo 21/04/2011, 12:16
Avatar de xarmagedonx
xarmagedonx
 
Fecha de Ingreso: marzo-2009
Mensajes: 360
Antigüedad: 15 años, 1 mes
Puntos: 29
Respuesta: Ordenar por número de coincidencias

Cita:
Iniciado por gnzsoloyo Ver Mensaje
1) No digo que borres el campo de la tabla, sino que no lo invoques.
2) Postea la sentencia completa, porque el error debe estar antes de ese punto. Revisa la sintaxis con cuidado...
EDITO: Ahí quedo bien ordenado pero me escribe otro error diferente:

Cita:
Unknown column 'coincidencias' in 'order clause'
Y si vuelvo a añadir AS coincidencias sale el error:

Cita:
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'AS coincidencias ORDER BY coincidencias DESC' at line 6
Se que no te referías a la tabla pero es el único lugar en el que se encuentra y se ordenan mediante el ID no sé cómo pasa eso jaja.

Acá dejo todo el código:

Código:
<?php 
// conectar al servidor 
$server_link = mysql_connect("Aca el servidor", "Usuario", "Contraseña"); 
if(!$server_link){ 
    die("Fall&oacute; la Conexi&oacute;n ". mysql_error()); 
} 
// seleccionamos la base de datos 
$db_selected = mysql_select_db("Base de datos", $server_link); 
if(!$db_selected){ 
    die("No se pudo seleccionar la Base de Datos ". mysql_error()); 
} 
// verificamos que se haya enviado una consulta 
if(isset($_GET['buscar']) && $_GET['buscar'] == 'Buscar'){ 
    $frase = htmlspecialchars($_GET['frase']); 
    // hacemos la consulta de busqueda
	$tiempoinicio = microtime();
    $sqlBuscar = mysql_query("SELECT webTitulo, webDescripcion, weburl, 
                              MATCH (webTitulo, webDescripcion, weburl, webkeywords) 
                              AGAINST ('$frase' IN BOOLEAN MODE) AS coincidencias 
                              FROM webs 
                              WHERE MATCH (webTitulo, webDescripcion, webkeywords)
                              AGAINST ('$frase' IN BOOLEAN MODE) 
                              ORDER BY coincidencias DESC", $server_link) 
                              or die(mysql_error());                               
    $totalRows = mysql_num_rows($sqlBuscar);
	$tiempofinal = microtime(); 
    $tiempo = ($tiempofinal-$tiempoinicio);
	// Enviamos un mensaje 
    // indicando la cantidad de resultados ($totalRows) 
    // para la frase buscada ($frase) 
    if(!empty($totalRows)){ 
        echo stripslashes("<p>Se encontraron <strong>$totalRows</strong> resultados para <strong>$frase</strong> en: <strong>$tiempo</strong> segundos</p>");         
        // mostramos los resultados 
        while($row = mysql_fetch_array($sqlBuscar)){ 
            echo "<strong><a href=$row[weburl]>$row[webTitulo]</a></strong>"; 
            echo "<p>".substr(strip_tags($row['webDescripcion']), 0, 255)."...</p>"; 
        }   
    } 
    // si se ha enviado vacio el formulario 

    // Error debe introducir una palabra 
    elseif(empty($_GET['frase'])){ 
        echo "Debe introducir una palabra para su búsqueda"; 
    } 
    // si no hay resultados 
    // No se encontraron resultados 
    elseif($totalRows == 0){ 
        echo stripslashes("No se encontraron resultados para <strong>$frase</strong>"); 
    } 
} 
?>
Añadí la mayor cantidad de veces la palabra Tierra y los resultados ni se modifican no entiendo bien porque.

Saludos y gracias por toda tu ayuda!!

Última edición por xarmagedonx; 21/04/2011 a las 12:23