IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

PHP & Base de données Discussion :

recherche différente entre le titre et la description, pourquoi.


Sujet :

PHP & Base de données

  1. #1
    Membre éclairé
    Homme Profil pro
    HobbyWeb
    Inscrit en
    Janvier 2005
    Messages
    183
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : Suisse

    Informations professionnelles :
    Activité : HobbyWeb

    Informations forums :
    Inscription : Janvier 2005
    Messages : 183
    Par défaut recherche différente entre le titre et la description, pourquoi.
    Bonjour,

    Sur un petit annuaire que j'ai crée, je me rends compte que la recherche n'est pas la même entre le titre et la description

    si je cherche, admettons "yahoo finance"

    il ne me trouve pas ce résultat !

    Yahoo! France - Finance
    Moteur de recherche, email gratuit, etc......
    http://fr.yahoo.com (2 hits)

    par contre, si je change de place le mot finance comme ainsi

    Yahoo! France
    Yahoo Finance. Moteur de recherche, email gratuit, etc......
    http://fr.yahoo.com (2 hits)

    le résultat est trouvé et affiché de la sorte (avec la coloration).

    en résumé :

    Si 2 mots clefs sont dans la description => ok
    1 mot clef dans le titre et 1 mot clef dans la description => ok

    Si deux mots clefs sont dans le titre, il ne les trouve pas => pas bon

    Pouvez-vous svp m'indiquez ce que je vais de faux.... car j'aimerais que toutes les combinaisons soient possibles
    D'avance merci
    Yule

    extrait de la base

    `nomsite` text NOT NULL,
    `description` text NOT NULL,
    `mcles` text NOT NULL,


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    <?PHP
    // +------ la requête, ( pour info, les mots clefs sont placé dans un tableau par explode)-------+
     
    // +------ sur quel champs effecter la recherche -------+ 
    $phrase .= "(nomsite like '%$mots%' or description like '%$mots%' or mcles like '%$mots%')";
     
     
    $query = "SELECT id, nomsite, description, mcles, url, nbhit FROM $tablemot WHERE ".$phrase."  
    AND valid='1' AND suspens='0' ORDER BY nbhit DESC LIMIT $debut,$limit"; 	
    $succes = mysql_query($query) or die ("Erreur N°1 :" . mysql_error());
    $result = mysql_num_rows ($succes); ?>

  2. #2
    Membre éclairé Avatar de meufeu
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    355
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 355
    Par défaut
    Je pense que le probleme vient du point d'exclamation entre "Yahoo" et "Finance"

    Pour qu'il trouve il faudrait que tu remplaces, dans la chaine saisie dans la recherche, les espace par des "%" et ainsi il sera trouvé

    Hope it helps

  3. #3
    Membre éclairé
    Homme Profil pro
    HobbyWeb
    Inscrit en
    Janvier 2005
    Messages
    183
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : Suisse

    Informations professionnelles :
    Activité : HobbyWeb

    Informations forums :
    Inscription : Janvier 2005
    Messages : 183
    Par défaut
    Ok merci je vais regarder ça.

    Dans un premier temps et avec un peu de recul... je me demande si finalement le booleen OR n'est pas pour quelque chose aussi...

    Merci de me le confrmer...

    Yule

  4. #4
    Membre éclairé Avatar de meufeu
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    355
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 355
    Par défaut
    non non je ne pense pas que cela vienne du OR, il est parfait selon moi

  5. #5
    Membre éclairé
    Homme Profil pro
    HobbyWeb
    Inscrit en
    Janvier 2005
    Messages
    183
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : Suisse

    Informations professionnelles :
    Activité : HobbyWeb

    Informations forums :
    Inscription : Janvier 2005
    Messages : 183
    Par défaut
    Re,

    Oui c'est parfait pour le % MERCI !

    Je vais abuser....

    maintenant que la recherche fonctionne avec plus de deux termes, c'est la coloration de syntaxe qui planche....

    pour un mots clef c'est bon, la coloration se fait, mais à + de un mot clef.. plus de coloration... grrrr

    voilà le code que j'utilises
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    // +------ coloration des mots -------+   	 
    $mots=implode(' ',$tablo); 
     
    $motif='`^|\b(('.$mots.')?)\b|$`si'; 
    $sortie='<font color="#398F48"><b><i>$1</i></b></font>'; 
     
    $nomsite = preg_replace($motif,$sortie,$nomsite); 
    $description = preg_replace($motif,$sortie,$description);
    A+
    Yule

Discussions similaires

  1. Recherche croisées entre différents tableaux
    Par solorac dans le forum Excel
    Réponses: 2
    Dernier message: 12/06/2007, 10h49
  2. Réponses: 9
    Dernier message: 10/08/2004, 17h13
  3. [Sybase] order by différent entre 2 servers
    Par MashiMaro dans le forum Sybase
    Réponses: 9
    Dernier message: 15/07/2004, 11h01
  4. [ASCII] Codes différents entre 2 logiciels
    Par MinsK dans le forum Assembleur
    Réponses: 3
    Dernier message: 20/04/2004, 09h34
  5. Réponses: 2
    Dernier message: 17/05/2002, 20h37

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo