Ho già fatto una ricerca sul forum e postato successivamente in altri post, ma non sono ancora venuto a capo del mio problema.
Questo è il codice che ho nel search.php
Codice PHP:
$ricerca = explode(" ",$search);
foreach($ricerca AS $parola){
$query = "SELECT *, MATCH(titolo, testo) AGAINST('+$parola -asp' IN BOOLEAN MODE) as score
FROM News
WHERE MATCH(titolo, testo) AGAINST('+$parola -asp' IN BOOLEAN MODE)
GROUP BY id DESC";
$result = mysql_query($query, $connection) OR DIE (mysql_error());
while ($row = mysql_fetch_assoc($result)){
$data2 = "$row[data]";
$split_data = explode("-",$data2);
$ora2 = "$row[ora]";
$split_ora = explode(":",$ora2);
echo "<tr height=20>";
echo "<td align=left valign=middle class=link_news>";
echo "<table width=98% border=0 cellspacing=4 cellpadding=0>";
echo "<tr>";
echo "<td width=5 class=link_news align=left>»</td>";
echo "<td class=testo_news align=left>[url="news.php?id_search=$row[id]><span"]$row[titolo]</span>[/url] - by <span class=link_news>$row[autore]</span> - $split_data[2]/$split_data[1]/$split_data[0], $split_ora[0]:$split_ora[1]</td>";
echo "</tr>";
echo "</table>";
echo "</td>";
echo "</tr>";
}
}
Faccio un esempio:
Ho 2 news (escludo per ora il testo e faccio la ricerca solo sui titoli).
1a news) titolo: News uno
2a news) titolo: News due
Nel motore di ricerca inserisco queste parole chiavi: "News uno".
Lo script mi ricerca prima la parola "News" e la troverà nelle 2 news esistenti. Mi stampa quindi 2 record.
Poi passa alla seconda parola "uno" e la troverà solo nella prima news. Mi stampa quindi 1 record.
In totale ci saranno 3 record nella schermata finale:
1) News uno // dove ha trovato News
2) News due // dove ha trovato News
3) News uno // dove ha trovato uno
Il problema è che non riesco in nessun modo a dirgli di scartare tutti i record che sono già stati trovati nella ricerca precedente, ovvero non vorrei che stampasse ancora la prima news (numero 3).
Come dovrei modificare il codice di sopra??
Thx!