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 :

Requete sans prendre en compte la ponctuation


Sujet :

PHP & Base de données

  1. #1
    Membre actif
    Avatar de Freedolphin
    Homme Profil pro
    Webmaster
    Inscrit en
    Février 2006
    Messages
    291
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Webmaster
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Février 2006
    Messages : 291
    Points : 225
    Points
    225
    Par défaut Requete sans prendre en compte la ponctuation
    Bonjour à tous,

    Je voudrais effectuer une recherche dans la base sans tenir compte du signe de ponctuation.
    > Je pourrais supprimer toute ponctuation dans les mots recherchés avec une expression régulière, sauf que je voudrais retrouver cette ponctuation dans l'affichage du résultat.
    > Je pourrais aussi utiliser like au lieu de = mais j'ai besoin de chercher exactement le même mot.

    Est-ce que regexp permet de faire ce genre de tri ?

    Voilà ma requête :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $req = mysql_query("SELECT * FROM matable WHERE colonne='$mot'");
    C'est un petit module de remplacement de mots, donc certains mots de la recherche sont remplacés, d'autres pas. C'est pourquoi j'affiche sur la ligne de résultat les mots remplacés et ceux qui ne le sont pas, je dois donc garder la ponctuation.

    Merci de vos propositions.
    Le mieux n'est pas forcément l'ennemi du bien.

  2. #2
    Membre éprouvé Avatar de redoran
    Homme Profil pro
    Développeur-Amateur
    Inscrit en
    Juin 2010
    Messages
    1 346
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : Algérie

    Informations professionnelles :
    Activité : Développeur-Amateur
    Secteur : Santé

    Informations forums :
    Inscription : Juin 2010
    Messages : 1 346
    Points : 1 031
    Points
    1 031
    Par défaut
    salut ;
    sauf que je voudrais retrouver cette ponctuation dans l'affichage du résultat.
    l'affichage des données ne sera pas affecté par la recherche sur le plan de ponctuation.
    l'affichage dépend de la façon de l'enregistrement des données dans la BDD.
    les requêtes accepte les signes de ponctuation donc faut faire attention lors de l'utilisation des regex....
    C'est un petit module de remplacement de mots, donc certains mots de la recherche sont remplacés, d'autres pas. C'est pourquoi j'affiche sur la ligne de résultat les mots remplacés et ceux qui ne le sont pas, je dois donc garder la ponctuation.
    là on voie une requête de sélection , ou est le remplacement !!!!!!

  3. #3
    Membre actif
    Avatar de Freedolphin
    Homme Profil pro
    Webmaster
    Inscrit en
    Février 2006
    Messages
    291
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Webmaster
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Février 2006
    Messages : 291
    Points : 225
    Points
    225
    Par défaut
    Citation Envoyé par redoran Voir le message
    là on voie une requête de sélection , ou est le remplacement !!!!!!
    Là, je ne voulais que travailler sur la requête, je n'ai pas mis tout le code. L'idée était de faire une requête en "échappant" la ponctuation.
    Le remplacement se fait simplement avec une condition : si le mot est présent dans la base, il est remplacé par son équivalent (également enregistré dans la BD), sinon on affiche le mot initial.

    Citation Envoyé par redoran Voir le message
    l'affichage des données ne sera pas affecté par la recherche sur le plan de ponctuation. L'affichage dépend de la façon de l'enregistrement des données dans la BDD.
    L'affichage n'est pas affecté, mais la recherche, oui. Si je fais une recherche sur "pourquoi?", il ne trouvera pas le mot "pourquoi" enregistré dans la base dans la ponctuation.

    Bon, finalement, j'ai bidouillé une série de conditions (j'aurais pu aussi faire un switch mais bon) pour enlever puis isoler la ponctuation :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    if (strpos($mot,"?")==true) 
    {
    $mot= rtrim($mot,"?");
    $signe = "?";
    }
    else if (strpos($mot,"!")==true) 
    {
    $mot= rtrim($mot,"!");
    $signe = "!";
    }
    Le mieux n'est pas forcément l'ennemi du bien.

Discussions similaires

  1. Réponses: 3
    Dernier message: 03/02/2012, 14h03
  2. requête sans prendre en compte la casse
    Par clems34 dans le forum PostgreSQL
    Réponses: 13
    Dernier message: 13/04/2009, 16h50
  3. Réponses: 4
    Dernier message: 13/04/2007, 17h32
  4. Réponses: 1
    Dernier message: 01/06/2006, 17h18
  5. Réponses: 2
    Dernier message: 07/07/2004, 17h44

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