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 :

Contrôle de doublons - sensible à la casse [RegEx]


Sujet :

Langage PHP

  1. #1
    Membre éclairé
    Homme Profil pro
    Développeur Web
    Inscrit en
    Avril 2007
    Messages
    500
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Avril 2007
    Messages : 500
    Par défaut Contrôle de doublons - sensible à la casse
    Bonjour,
    voici à quoi je suis confronté à l'heure actuelle :
    je récupere plusieurs libellés dans un formulaire, le but est de vérifier qu'il n'y ai pas de doublons.

    Par exemple :
    "Mon Test" et "MOn TeSt" doit me retrouver une erreur de doublon.

    A priori il faudrait que je fasse une boucle sur chaque caractère afin de constuire dynamiquement ma regex, le soucis c'est plutot la forme de celle-ci.
    Je pensais à quelque chose comme ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     [Mm][Oo][Nn][ ][...pour chaque lettre]
    Mais je pense qu'il manque quelque chose.


    Pourriez-vous m'éclairer ? :=)

  2. #2
    Membre éprouvé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2010
    Messages
    80
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2010
    Messages : 80
    Par défaut
    Bonjour,

    vous avez peut-être deux solutions (mais certainement pas ce que vous proposez avec des expressions régulières) :
    - comparez tous les libellés entre eux avec une fonction comme strcasecmp. Cela implique que vous mettiez tous vos libellés dans un tableau et que vous utilisiez deux boucle imbriquées. Cette solution me parait néanmoins peu élégante.
    - Vous envoyez tous vos libellés dans un tableau A. Ensuite vous utilisez la fonction array_unique sur votre tableau A, qui vous renvoit alors un tableau B. Une comparaison du nombre d'éléments dans les tableaux A et B vous dira s'il existe des doublons. Si les nombre sont égaux, pas de doublons... Dans le cas contraire, il existe des doublons.

    Il y a surement d'autres solutions, mais ces deux sont celles qui me viennent spontanément à l'esprit (avec une préférence pour la seconde).

    HTH.

  3. #3
    Expert confirmé
    Avatar de Benjamin Delespierre
    Profil pro
    Développeur Web
    Inscrit en
    Février 2010
    Messages
    3 929
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Février 2010
    Messages : 3 929
    Par défaut
    A priori il faudrait que je fasse une boucle sur chaque caractère afin de constuire dynamiquement ma regex
    Par la peine de t'enuyer avec des regexp.

    Pour déterminer s'il y a des doublons tu peux faire:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    $a = array('test', 'Test', 'TEST');
     
    if (count($a) != count(array_unique(array_map('strtolower', $a))))
      echo "Il y a des doublons";
    -- EDIT

    @Agnello J'avais pas vu ta solution, on dirait qu'on a les mêmes idées

    Y'a personne qui à une idée moins brico-marché ?

  4. #4
    Membre éprouvé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2010
    Messages
    80
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2010
    Messages : 80
    Par défaut
    Citation Envoyé par Benjamin Delespierre Voir le message
    @Agnello J'avais pas vu ta solution, on dirait qu'on a les mêmes idées

    Y'a personne qui à une idée moins brico-marché ?
    Ah, et bien oui, il y a une solution moins brico-marché et plus orientée SI compliant, qui serait de tout insérer en base de données et de faire ça à coup de select, de group by et de having, mais ça ressemble furieusement au couple marteau/enclume pour une pôvre drosophile.

    Cdt.

  5. #5
    Membre éclairé
    Homme Profil pro
    Développeur Web
    Inscrit en
    Avril 2007
    Messages
    500
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Avril 2007
    Messages : 500
    Par défaut
    Hello, merci pour vos idées, jvais regarder ça de plus près.

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

Discussions similaires

  1. Contrôle de doublon dans une datawindow issue d'une table à deux clés primaires
    Par Maman Kakalé Néhémiya dans le forum Powerbuilder
    Réponses: 4
    Dernier message: 16/08/2006, 21h28
  2. Réponses: 2
    Dernier message: 15/05/2006, 14h08
  3. [Requête] SELECT sensible à la casse
    Par joefou dans le forum MS SQL Server
    Réponses: 3
    Dernier message: 06/02/2006, 14h23
  4. [MySQL] Contrôle des doublons
    Par samjung dans le forum PHP & Base de données
    Réponses: 17
    Dernier message: 16/11/2005, 19h54
  5. Nom de la table sensible à la casse
    Par Alexandre T dans le forum MS SQL Server
    Réponses: 6
    Dernier message: 17/03/2005, 17h34

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