I have found out the relevance of each result successfully, but dont seem to know how to order them by it. Heres the code.
$highestRelevance = 0;
while($row = mysql_fetch_assoc($result))
{
$subject = $row['subject'];
$content = $row['content'];
$search = strtolower($search);
$subject = strtolower($subject);
$theRelevanceOfTheResult1 = substr_count($content, $search);
$theRelevanceOfTheResult = $theRelevanceOfTheResult1 + substr_count($subject, $search);
if ($theRelevanceOfTheResult > $highestRelevance){
$highestRelevance = $theRelevanceOfTheResult;
}
}
if($highestRelevance == 0){
$highestRelevance = 1;
}
$search = str_replace(array('%', '_'), array('\%', '\_'), $search);
$result = mysql_query("
SELECT *
FROM `articles`
WHERE `subject` LIKE '%$search%'
OR `content` LIKE '%$search%'
OR `postdate` LIKE '%$search%'
ORDER BY '$highestRelevance' ASC
") or die(mysql_error());
while($row = mysql_fetch_assoc($result))
{
$aid = $row['aid'];
$subject = $row['subject'];
$postdate = $row['postdate'];
$content = bbcode($row['content']);
$search = strtolower($search);
$subject2 = strtolower($subject);
$theRelevanceOfTheResult1 = substr_count($content, $search);
$theRelevanceOfTheResult = $theRelevanceOfTheResult1 + substr_count($subject2, $search);
$theRelevanceOfTheResult = round(($theRelevanceOfTheResult / $highestRelevance) * 100, 2); // the percentage relevance
echo " <li><a href=\"./view_article/$aid/\">$subject</a><br /><i>Relevance: $theRelevanceOfTheResult%</i></li>
";
}
Also a friend said to do it this way, but I dont understand..
$relevanceArray[$aid] = $relevancePercentage;
sort($relevanceArray);
foreach($relevanceArray as $r => $v){
$get = "SELECT * FROM `articles` WHERE $r";
}
Any help is appreciated, thank you.
Edited by Braunson, 13 July 2007 - 01:04 PM.
