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

SQL Procédural MySQL Discussion :

Moteur recherche & stockage texte caractère spéciaux htm


Sujet :

SQL Procédural MySQL

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 2
    Points : 2
    Points
    2
    Par défaut Moteur recherche & stockage texte caractère spéciaux htm
    Salut,

    je travaille actuellement à un petit moteur de recherche sur un site en php/mysql

    et je me trouve confronté à ce problème :

    je stocke mes données texte dans la base, aprés avoir transformé tous les caractères spéciaux dans leur equivalent html, ceci à l'aide de la fonction php : htmlentities() ce que tout le monde conseille apparemment...

    j'ai ensuite un champ de recherche, dont je récupère la valeur (aprés l'avoir passée par htmlentities), et que j'envois dans une requete mysql de type fulltext (bien pratique pour la pertinence des résultats!)

    jusque là tout va bien, si je recherche étoile (avec un accent), et que le mot étoile est trouvé dans la base, ca marche

    MAIS si je recherche etoile (sans accent!!!) je n'ai bien entendu aucuns résultat

    hors, je pense qu'il y'a plus de probalilité que les visiteurs fassent des recherches sur des expressions sans les accents que le contraire

    mon moteur n'est donc pas valide !

    je me dis qu'il y'a peut être une fonction dispo dans mysql qui permet de passer outre ce problème, du genre -> une requete qui serait capable de comparer l'expression voulue avec celles contenues dans la base AVEC et SANS les caractères spéciaux (le é serait remplacé par le e, è par e, ç par c ...etc...)

    j'ai bien cherché dans les fonctions sur les chaines de caractère de mysql, mais je n'ai rien trouvé

    quelque developpeur aurait-il un indice ?

    Clt,
    Antoine

  2. #2
    Rédacteur

    Avatar de zoom61
    Homme Profil pro
    ...
    Inscrit en
    Janvier 2005
    Messages
    9 429
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Vienne (Limousin)

    Informations professionnelles :
    Activité : ...
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2005
    Messages : 9 429
    Points : 58 222
    Points
    58 222
    Billets dans le blog
    11
    Par défaut
    Salut,

    Tu pourrais peut-être résoudre ton problème avec la fonction str_replace.

    @+.

  3. #3
    Candidat au Club
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 2
    Points : 2
    Points
    2
    Par défaut
    je crois que je n'ai pas expliqué de facon assez détaillée ma démarche,

    c'est sur le contenu de la base que j'ai besoin d'effectuer cette action et ce, à l'interieur d'une requete sql

    connaissez vous les requêtes FULLTEXT de mysql ?

    voici ma requête :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    SELECT *, MATCH (libelle,  description) AGAINST ('".$recherche."') as cpt
     
    FROM  article

    libelle et description sont les 2 champs de la base sur lesquels je veux que la recherche s'effectue

    $recherche est le champ saisi par l'internaute

    le résultat de cette requete donne les enregistrements contenant l'expression $recherche

    (avec la possibilité par la suite de les classer suivant le nombre d'occurences trouvées pour chaque enregistrement, c'est tout l'intérêt de cette formule)


    dans les champs libelle et description, le texte est enregistré avec les equivalents html
    le mot étoile, s'y trouve donc sous cette forme : étoile
    alors, si je recherche etoile (sans accent)
    la requete ne trouve rien, mon moteur n'est donc pas valide...

  4. #4
    Rédacteur

    Avatar de zoom61
    Homme Profil pro
    ...
    Inscrit en
    Janvier 2005
    Messages
    9 429
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Vienne (Limousin)

    Informations professionnelles :
    Activité : ...
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2005
    Messages : 9 429
    Points : 58 222
    Points
    58 222
    Billets dans le blog
    11
    Par défaut
    Tu peux aller voir la question suivante :
    SET ... REPLACE() de MySQL

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [WD-2000] Formulaire Zone Texte caractères spéciaux
    Par edmond dans le forum Word
    Réponses: 3
    Dernier message: 05/07/2010, 18h59
  2. [MySQL] Stockage des caractères spéciaux
    Par nabab dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 30/07/2007, 09h54
  3. Recherche de caractères spéciaux
    Par sberube dans le forum Langage
    Réponses: 1
    Dernier message: 18/11/2005, 20h41
  4. Réponses: 5
    Dernier message: 23/10/2005, 18h27

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