Moteur de recherche retour des resultat par ordre de pertinance.

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Moteur de recherche retour des resultat par ordre de pertinance.

par Truc » 16 août 2007, 16:26

Rien ne t'empèche de créer une table à l'aide d'une requête... comme ça pas de souci pour trouver les options.

Sinon pour le full_text dans phpmyadmin me semble qu'il est rangé avec les clés possibles (primaire, index...)

par cyberneo » 16 août 2007, 15:50

ben justemen dans la creation de la table exemple on voi qu'il utlise la commande fulltext... je vais encor fouiller ca mais il faut bien que je declar a un endroi donner que le champ qui est dans ma base et fulltext nan?

par Truc » 16 août 2007, 13:47

ben je trouve pas full_text dans php myadmin ....
Qui à parlé de phpmyadmin ?

Ryle donne un lien où tu trouveras ces infos. Il s'agit donc de requêtes à construire avec "MATCH / AGAINST"

par cyberneo » 16 août 2007, 13:31

ben je trouve pas full_text dans php myadmin ....

par Ryle » 16 août 2007, 11:30

Tu dois pouvoir y parvenir avec les fonctions de recherche FULL TEXT de MySQL ... regarde du côté de MATCH / AGAINST :
http://dev.mysql.com/doc/refman/5.0/fr/ ... earch.html

Moteur de recherche retour des resultat par ordre de pertina

par cyberneo » 16 août 2007, 09:45

Bonjour a tous... je suis completement perdu je n'arrive pas a imaginé comment on peut fair ca...
-commen donner comme ordre a la requete a chaque foi que tu trouve un element tu incremente une varable et de mm pour les autre mot de recherche pour a la fin aficher le top 10 ...
J'ai besoin de vos connaissance ^^

voila une partie de mon code.

Code : Tout sélectionner

<?php $type=$_POST['type']; $rech=$_POST['recherche']; $rtype=$_POST['type_rech']; //recuperation des retour a la ligne et des guillemet $rech= nl2br($rech); $rech= addslashes($rech); ............. //on coupe la chaine de caractere a chaque espace //$mots = explode(" ", $rech); $mots = preg_split('#[^\S]+#si', $rech); //on compte le nombre de mot $long = count($mots); //initialisation de la variable condition $condition = ""; $i=0; if (empty($rech)) { echo '<DIV id=content>'; echo 'Veuillez entrer une recherche'; include ('rechercher_procedure.php'); exit (); } else if($type=="logi" and $rtype=="tous") { //echo 'recherche par mot clé (tous) - logiciel '; for ($i=0; $i<$long;$i++) { if($mots[$i]> "2") { $condition = $condition .'AND (proc_soft.proc_s_description like \'%'.$mots[$i].'%\' OR pb_soft.pb_s_description like \'%'.$mots[$i].'%\')'; $condition = ltrim($condition,'AND'); $table = '(relation_soft_pb LEFT JOIN proc_soft ON proc_soft.proc_s_num = relation_soft_pb.proc_s_num)LEFT JOIN pb_soft ON relation_soft_pb.pb_s_num = pb_soft.pb_s_soft'; } } } else if($type=="logi" and $rtype=="omoin") { // echo 'recherche par mot clé (au moin un) - logiciel '; for ($i=0; $i<$long;$i++) { if($mots[$i]> "2") { $condition = $condition .'OR (proc_soft.proc_s_description like \'%'.$mots[$i].'%\' OR pb_soft.pb_s_description like \'%'.$mots[$i].'%\')'; $condition = ltrim($condition,'OR'); $table = '(relation_soft_pb LEFT JOIN proc_soft ON proc_soft.proc_s_num = relation_soft_pb.proc_s_num)LEFT JOIN pb_soft ON relation_soft_pb.pb_s_num = pb_soft.pb_s_soft'; } } } ................. //construction de la requete $sql = 'Select * from '.$table.' where '.$condition ; // requête SQL qui compte le nombre total d'enregistrement dans la table et qui //récupère tous les enregistrements $data = mysql_query($sql) or die ('Erreur: '.mysql_error()); $total = mysql_num_rows($data); //si on récupére un résultat on affiche le tableau if($total) { echo '<div id=content>'; echo '<table>'; echo '<tr>'; echo '<td>Num procédure</td>'; echo '<td>Createur</td>'; echo '<td>Description</td>'; echo '</tr>'; echo '<tr>'; while($row = mysql_fetch_array($data)) { echo '<tr>'; echo '<td>'.$row["proc_s_num"].'</td>'; //selectionner le Nom et le prenom du createur $sql_nom = 'select * from utilisateur where util_num = '.$row["util_num"]; $res = mysql_query($sql_nom) or die ('Erreur : '.mysql_error()); $nom=mysql_fetch_assoc($res); echo '<td>'.$nom["util_prenom"].'<br>'.$nom["util_nom"].'</td>'; echo '<td>'.$row["pb_s_description"].'</td>'; echo '</tr>'; } echo '</tr>'; echo '</table>'; echo '</div>'; } else { echo 'la recherche n\'a donnée aucun résultat'; } ?>