Intenta reemplazando tu código por esto:
Código PHP:
<?
if(!empty($_POST['busqueda']))
{
$bus = $_POST['busqueda'];
include ("conexion.php");
$result=mysql_db_query("$db","SELECT * ,MATCH ('noticia, titulo') AGAINST ('$bus' IN BOOLEAN MODE) AS score FROM `noticias` WHERE MATCH ('noticia, titulo') AGAINST ('$bus' IN BOOLEAN MODE) ORDER BY score DESC");
$i=1;
while($row=mysql_fetch_array($result))
{
echo $i.': '.$row["titulo"].'<br>';
$i++;
}
mysql_free_result($result);
}
?>
Es posible que tenga errores, pero lo que hace es buscar dentro de los campos 'noticia' y 'titulo' y se crea un 'campo virtual' llamado
score al que por cada coincidencia con el texto ingresado se le suma 1, luego se ordenan según los que tengan más alto
score, es decir, el que tenga más coincidencias.
Saludos!
Edito:
Se me olvidaba, deberias usar mysql_query() en lugar de mysql_db_query(), porque si lees en
http://www.php.net/mysql_db_query, esta última funcion está obsoleta desde PHP 4.0.6