Jump to content

Tri récalcitrant en PHP


Don_Angelo

Recommended Posts

Bonjour à tous,

je suis en train de développer un moteur de recherche en PHP pour mon site. Celui-ci est censé trier les résultats par pertinence décroissante en affichant la pertinence estimé. Mon problème c'est que je suis obligé de calculer deux pertinences différentes. Celle pour la recherche d'une expression exacte et celle de la recherche d'une suite de mot au hasards dans l'article. La 2nde ayant une valeur beaucoup plus faible. Je suis donc obligé de trier pour que le même resultat n'apparaissent pas deux fois. La recherche s'effectue sur deux tables pour l'instant. Il y en aura bientôt plus donc le script est prévu en conséquence. Le problème est que lors de la recherche dans la 1ère table tout est ok. Mais dans la seconde les résultats apparaissent en double avec des pertinences différentes et je comprends pas pourquoi.

Voici mon code:

<?
include('rechercher.php');
echo "";
$motcle_tag_less = str_replace("+"," ",$_GET['motcle']);
$mot_cle_tag_less=str_replace("[43]"," ",$mot_cle_tag_less);
$mot_cle_tag_less=str_replace("[38]","&",$mot_cle_tag_less);
$mot_cle_tag_less=str_replace("[63]","?",$mot_cle_tag_less);
$mot_cle_tag_less=str_replace("[br]","
",$mot_cle_tag_less);
$motcle_tag_less = trim($motcle_tag_less);
$motcle_tag = $motcle_tag_less;
$motcle_tag = str_replace(""","",$motcle_tag);
$motcle_tag = str_replace("<","1) echo "Résultats de la recherche de [b]",$motcles,"[/b]: $nb_result résultats

";
echo "
";
echo "[list=1]
";
    while ($temp

Si quelqu'un pouvait m'aider ça m'arrangerait. D'avance Merci.

Link to post

Salut, Par hasard hier soir j'ai trouvé la réponse. Je me sens tout honteux de ne pas y avoir pensé:

Il suffisait de reprogrammer une fonction qui teste l'existence du texte du resultat comme ça:

function result_exist($texte)
{
global $resultats;
$temp=0;
$temp2=count($resultats);

while($temp<=$temp2)
{
	if ($resultats[$temp]["texte"]==$texte)
	{
	return true;
	break;
	}
	else $temp++;
}
if ($temp==$temp2) return false;
}

et de remplacer la condition bancale par:

if (result_exist($texte)==false)

Link to post

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...