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

Langage PHP Discussion :

comment ne pas tenir compte des mots de liaisons tels que le, la, les, et, etc. [RegEx]


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre chevronné

    Profil pro
    Inscrit en
    Août 2007
    Messages
    496
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 496
    Par défaut comment ne pas tenir compte des mots de liaisons tels que le, la, les, et, etc.
    Bonjour a tous,
    Voila mon problème :

    J'ai créé un champ de formulaire pour faire une recherche sur une base de donnée mais lorsque je tape par exemple « le chat et la souris » les mots « le », « et », « la » sont pris en compte dans la recherche ce qui ne m’aide pas sur le nombre de résultats obtenu qui peut être très important.
    Je souhaiterai que la recherche se fasse sur les seuls mots « chat » et « souris » sans tenir compte des mots de moins de 4 caractères par exemple.
    Quelle est la commande à taper pour ce type de requête en fait je voudrai que le script efface ces petit mots pendant son exécution.
    Merci d’avance pour vos futures réponses

  2. #2
    Membre Expert
    Inscrit en
    Janvier 2005
    Messages
    2 291
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 291
    Par défaut
    soit tu définis une liste de mots a ignorer dans un tableau, ensuite tu découpes ta chaine en un tableau de mots et tu utilises une boucle sur les éléments du tableau de ta chaine pour vérifier que ca n'est pas un mot a ignorer.

    tu peux aussi simplement découper les mots de ta chaine en un tableau (explode()) et ensuite tu vérifies que chaque mot a une taille supérieure a 3 par exemple

  3. #3
    Membre chevronné

    Profil pro
    Inscrit en
    Août 2007
    Messages
    496
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 496
    Par défaut
    Merci koopajah pour ta réponse rapide.

    Je pense que la deuxième solution serai la plus simple j'ai déja decouper les mots dans un tableau mais je ne sais pas comment supprimer les mot de plus de 3 lettres a l'interieur de celui ci avant de les envoyer a ma base de donnée.

  4. #4
    Membre Expert
    Inscrit en
    Janvier 2005
    Messages
    2 291
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 291
    Par défaut
    Citation Envoyé par kilian67
    Merci koopajah pour ta réponse rapide.

    Je pense que la deuxième solution serai la plus simple j'ai déja decouper les mots dans un tableau mais je ne sais pas comment supprimer les mot de plus de 3 lettres a l'interieur de celui ci avant de les envoyer a ma base de donnée.
    Comme je mets toujours une heure a retrouver la fonction qui permet d'effacer une partie d'un tableau (et qu'elle est pas instinctive) je te donne une autre solution :
    tu parcours ton tableau, et tu ajoutes dans un nouveau tableau les mots a rechercher (donc pas ceux de moins de 4 lettres)

  5. #5
    Membre expérimenté

    Profil pro
    Inscrit en
    Juin 2002
    Messages
    6 152
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 6 152
    Par défaut
    Peut être :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $out = trim(preg_replace('~\s*\b\S{1,3}\b\s*~', ' ', $in));

  6. #6
    Membre chevronné

    Profil pro
    Inscrit en
    Août 2007
    Messages
    496
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 496
    Par défaut
    Merci koopajah je vais essayer ta solution bien que je ne saist pas encore comment faire.

    julp j'ai essayer ta ligne de code mais ça ne me donne pas le résultat voulu.


    Merci encore pour votre aide

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

Discussions similaires

  1. Ne pas tenir compte des accent dans une requete
    Par prat038 dans le forum SQL
    Réponses: 8
    Dernier message: 07/09/2009, 13h34
  2. [MySQL] ne pas tenir compte des variables non utilisées pour éviter les bugs
    Par canary dans le forum PHP & Base de données
    Réponses: 17
    Dernier message: 26/03/2009, 08h46
  3. [vba] ne pas tenir compte des majuscules/minuscules
    Par bungler dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 24/07/2007, 09h07
  4. [DEBUTANT] comment ne pas tenir compte de la casse?
    Par Jidefix dans le forum Oracle
    Réponses: 5
    Dernier message: 05/01/2007, 12h10
  5. Ne pas tenir compte des accents dans une requete
    Par zamanika dans le forum Installation
    Réponses: 8
    Dernier message: 08/11/2004, 19h49

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