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 dans une table


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Inscrit en
    Septembre 2004
    Messages
    450
    Détails du profil
    Informations forums :
    Inscription : Septembre 2004
    Messages : 450
    Par défaut recherche dans une table
    bonjour,

    Je dois faire un mini moteur de recherche et je viens de me rendre compte que dans les tables pour le "é" par exemple il pouvait y être inséré de 2 manières:
    1)
    é
    2)
    é

    du coup je fait une recherche du style sur une dizaine de champs :

    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT  Nom_Job LIKE "%'.$keyword.'%" OR Nom_Job LIKE "%'.htmlentities($keywordHTML).'%" etc...

    N'y a t-il pas plus simple ?

    Merci beaucoup pour votre aide

  2. #2
    Expert confirmé
    Avatar de rawsrc
    Homme Profil pro
    Dev indep
    Inscrit en
    Mars 2004
    Messages
    6 142
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Dev indep

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 142
    Billets dans le blog
    12
    Par défaut
    Salut,

    Insérer un "é" en base de données comme "é" est une grossière erreur.
    Les fonctions htmlspecialchars(), htmlentities() ne doivent être utilisées que pour sécuriser le code HTML et pis c'est tout.
    Les base de données ont chacune leur propres fonctions d'échappement.
    Il ne faut pas mélanger les torchons et les serviettes.

    Dans ton cas, soit tu reprends les données dans la base (si c'est faisable) pour corriger cette erreur, soit tu roules avec ton LIKE accompagné de htmlentities(). Beeuuurk.

  3. #3
    Membre confirmé
    Femme Profil pro
    Développeur Web
    Inscrit en
    Octobre 2010
    Messages
    63
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 33
    Localisation : France, Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Octobre 2010
    Messages : 63
    Par défaut
    Peu de choses à dire de plus que rawsrc, si ce n'est que MySQL (j'ignore pour les autres) gère nativement le "e" et le "é" comme une même lettre (le "e" en l’occurrence, mais il en va de même pour les principales lettres accentuées).

  4. #4
    Membre éclairé
    Inscrit en
    Septembre 2004
    Messages
    450
    Détails du profil
    Informations forums :
    Inscription : Septembre 2004
    Messages : 450
    Par défaut
    On va essayer de corriger cette base
    Merci beaucoup

  5. #5
    Membre éclairé
    Inscrit en
    Septembre 2004
    Messages
    450
    Détails du profil
    Informations forums :
    Inscription : Septembre 2004
    Messages : 450
    Par défaut
    Citation Envoyé par rawsrc Voir le message
    Salut,

    Insérer un "é" en base de données comme "é" est une grossière erreur.
    Les fonctions htmlspecialchars(), htmlentities() ne doivent être utilisées que pour sécuriser le code HTML et pis c'est tout.
    Les base de données ont chacune leur propres fonctions d'échappement.
    Il ne faut pas mélanger les torchons et les serviettes.

    Dans ton cas, soit tu reprends les données dans la base (si c'est faisable) pour corriger cette erreur, soit tu roules avec ton LIKE accompagné de htmlentities(). Beeuuurk.
    Je pensais qu'il étais mieux avant d'insérer en base d'utiliser htmlspecialchars() ou htmlentities() ?

Discussions similaires

  1. [SQL] recherche dans une table
    Par H-bil dans le forum PHP & Base de données
    Réponses: 11
    Dernier message: 06/06/2006, 11h26
  2. Recherche dans une table via un formulaire
    Par Z[ee]k dans le forum Access
    Réponses: 3
    Dernier message: 05/06/2006, 11h14
  3. [VB6] Erreur durant la recherche dans une table
    Par quaife dans le forum VB 6 et antérieur
    Réponses: 3
    Dernier message: 03/04/2006, 17h21
  4. Recherche dans une table
    Par Fredo67 dans le forum Access
    Réponses: 2
    Dernier message: 28/02/2006, 17h21
  5. recherche dans une table Access en ASP
    Par D-D dans le forum ASP
    Réponses: 3
    Dernier message: 09/06/2004, 10h12

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