begin process at 2012 05 31 08:57:23
  Trouver un code source :
 
dans
 
Accueil > Forum > 

PHP

 > 

Base de données

 > 

MySQL

 > 

Recherche par mot-clés


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Recherche par mot-clés

vendredi 13 février 2009 à 10:11:16 | Recherche par mot-clés

balistik35

Bonjour,
Je cherche à faire une recherche par mot-clés dans ma base de données MySQL mais avec une certaine condition. Je développe un site de questions/réponses avec donc deux tables : question et reponse. La table reponse contient un champ id_question, correspondant à la question auquelle elle repond.
J ai réussi à faire une recherche par motclés en utilisant le MATCH...AGAINST mais là je désirerai afficher les questions contenant ces mots clés, mais en les classant par le nombres de réponses.
Voila ma methode de recherche :
//Recherche de question proches
//Le classement se fait par ordre de pertinence
//DOC : http://dev.mysql.com/doc/refman/5.0/fr/fulltext-search.html
function _rechercheQuest($chaine){
        
    $chaine = explode(",",$chaine);
    $this->m_nAccesBD->connexion(); //Connexion BD
    $sRequete = 'SELECT *, MATCH(`intitule_question`) AGAINST('.$chaine[0].') AS score FROM question';
    $sRequete .= ' WHERE id_question NOT IN ('.$this->id_question.') AND ';
    $sRequete .= 'MATCH (`intitule_question`) AGAINST ('.$chaine[0].')';
    for($i = 1; $i<count($chaine); $i++){
        $sRequete .= ' OR MATCH (`intitule_question`) AGAINST ('.$chaine[$i].')';
    }
    //echo '<p>Requete SQL : '.$sRequete.'</p>';
    $rResultat = $this->m_nAccesBD->requete($sRequete);
    $this->m_nAccesBD->deconnexion(); //Deconnexion   
    $aQuestProche = array();
    while($aListe = mysql_fetch_array($rResultat)){
        $aQuestProche[$aListe['id_question']] = $aListe;
    }
    return $aQuestProche;   
}
Et voila celle que je tente de faire en indiquant le nombre de reponses puis en classant par odre descendant:
    //Recherche questions proches populaires
    //Methode à retravailler : probleme sur requete SQL
    function _rechercheQuestPop($chaine){
   
        $chaine = explode(",",$chaine);
        $this->m_nAccesBD->connexion(); //Connexion BD
        $sRequete = 'SELECT q.*,count(r.id_reponse) as nb_rep FROM question q ';
        $sRequete .= 'LEFT JOIN reponse r ';
        $sRequete .= 'ON r.id_question = q.id_question ';
        $sRequete .= 'WHERE q.id_question != '.$this->id_question.' AND ' ;
        $sRequete .= 'MATCH (`intitule_question`) AGAINST ('.$chaine[0].')';
        for($i = 1;$i<count($chaine);$i++){
            $sRequete .= ' OR MATCH (`intitule_question`) AGAINST ('.$chaine[$i].')';
        }   
        $sRequete .= ' ORDER BY nb_rep DESC limit 0,30';   
        $rResultat = $this->m_nAccesBD->requete($sRequete);

Merci d avance ;)


Cette discussion est classée dans : recherche, chaine, question, id, srequete


Répondre à ce message

Sujets en rapport avec ce message

Traité une chaine [ par zzzzzz ] Yep :)j'ai une chaine valid_$id ($id c un nombre aleatoire en fait)imaginons valid_5j'aimerai juste recupéré valid_ pour une condition.En gros vérifié Question sur une erreur [ par defkrie ] Voici une portion de code qui me pose souci$test="abcdefghijklmnopqrstuvwxyz";$chaine="Le chat est mort.";for($i=0;$i if(ereg(substr($chaine,$i auto increment [ par bob ] Bonjour ! Alors voila, j'ai une question qui va etre surement trés simple pour vousvoila le sql de mla table CREATE TABLE `blogs` ( `id` smallint(6) petite question sur un script [ par oggy ] Salut !Je viens de trouver ce script concernant un moteur de recherche interne:Recherche : <input type="submit" va Recherche sur un site [ par Gregco ] Hello,Question question... je programme énormément en asp et j'ai envie de découvrir php...J'ai recourt au forum parce que j'ai besoin d'une informati Question auto_increment (MySQL) [ par ImmortalPC ] Salut, j'ai une table test CREATE TABLE `test` ( `ID` int(11) NOT NULL auto_increment, `Login` text, `MDP` text, `email` text, `QuestionsForm` lo SESSION_ID : recherche d'un ID de session [ par SaveC ] Bonjour à tous,Je cherche à vérifier si un utilisateur connecté à mon site possède un Identifiant de session déterminé.J'ai trouvé sur la doc PHP, la Comment rechercher un mot dans une chaine de caractères ? [ par Drazounet ] Bonjours à tous,Je suis en train de programmer un forum en php et maintenant je suis en train de lui ajouter une section "recherche" afin de trouver p Recherche d'une chaine de caractère dans un fichiers et affichage du paragraphe contenant la chaine? [ par dolu007 ] j'ai besoin de programmer un logiciel qui va me permettre de rechercher un mot ou une chaine de caractèredans un fichier lui meme contenu dans un répe Problème MySql!! [ par jnbrunet ] Bonjour,petit problème, je réalise un petit forum en php qui nous affiche toutes les discutions par les titres, comme le forum de cs, et lorsque l'on


Nos sponsors


Sondage...

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,328 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales