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 :

Comparaison de données [MySQL]


Sujet :

PHP & Base de données

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Septembre 2009
    Messages
    171
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2009
    Messages : 171
    Par défaut Comparaison de données
    Bonjour

    Je ne sais pas si je suis dans la bonne section pour mon problème, veuillez, cher modérateur, m'excuser si tel est le cas.

    La requête fonctionne mais c'est ensuite que je ne peux afficher un bouton ou nselon comment l'indicatif a été insérer.

    Exemple:
    Dans le formulaire, il peut-être écrit de plusieurs façon.

    1) 14 EDX 01 (que je préfère car plus propre)
    2) 14EDX01
    3) 14 edx 01
    4) 14edx01

    Donc comment puis-je faire une condition avec autant de modèles qui peut-être insérer.
    Ma préférence est le numéro 1
    Mon champ dans la table est comparé avec la SESSION.
    Sinon comment forcer l'enregistrement de la façon du numéro 1 ?

    Merci de votre aide

  2. #2
    Invité
    Invité(e)
    Par défaut
    Je ne sais pas si tu es dans la bonne section non plus car je n'ai absolument rien compris à ton problème

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Septembre 2009
    Messages
    171
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2009
    Messages : 171
    Par défaut
    Bonjour

    4 cas de comparaison comme decrit plus haut
    Si je compare avec l'indicatif dans la variable de session cela marche si c'est exactement ecrit pareil sinon pas de comparaison valide

    Donc comment faire

    Merci

  4. #4
    Membre éprouvé
    Homme Profil pro
    Ingénieur en électrotechnique retraité
    Inscrit en
    Décembre 2008
    Messages
    1 718
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Ingénieur en électrotechnique retraité

    Informations forums :
    Inscription : Décembre 2008
    Messages : 1 718
    Par défaut
    Bonjour,
    Si je comprends ton problème, il s'agit d'un problème de formatage. Une fois formaté, tu n'auras plus qu'une valeur à comparer. Je pense qu'un preg_replace ou un preg_split serait la bonne solution. Regarde la documentation et un bon cours sur les expressions régulières ou encore ici.
    Si tu as un nombre limité de code tu peux peut-être aussi utiliser une liste d'options (<select>).

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Septembre 2009
    Messages
    171
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2009
    Messages : 171
    Par défaut
    Re

    En fait je vais être plus precis...


    Comment mettre un espace apres une serie de chiffres puis mettre en majuscule les lettre puis un espace ensuite?

    Je ne sais pas comment decouper tout cela.
    Changer un mot dans une phrase oui mais ajouter des espace si il n'y sont non.

    Merci

  6. #6
    Membre éprouvé
    Homme Profil pro
    Ingénieur en électrotechnique retraité
    Inscrit en
    Décembre 2008
    Messages
    1 718
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Ingénieur en électrotechnique retraité

    Informations forums :
    Inscription : Décembre 2008
    Messages : 1 718
    Par défaut
    Tu ne peux pas avancer si tu ne te formes pas un minimum. La fonction preg_replace que je t'ai indiquée est faite pour ça! N'attends pas tout des autres, force toi un peu. Le temps que tu passeras à te former sera largement récupéré par la suite! Lis les règles du forum!

  7. #7
    Modératrice
    Avatar de Celira
    Femme Profil pro
    Développeuse PHP/Java
    Inscrit en
    Avril 2007
    Messages
    8 633
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Développeuse PHP/Java
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2007
    Messages : 8 633
    Par défaut
    Trois possibilités :
    1) Forcer le formulaire à n'accepter que le format que tu veux (via un javascript)
    2) Retirer les espaces pour travailler uniquement avec une version concaténée
    3) Travailler avec des regex pour prendre en compte "groupe de chiffres, espaces optionnels, groupe de lettres, espaces optionnels, groupe de chiffres"
    Modératrice PHP
    Aucun navigateur ne propose d'extension boule-de-cristal : postez votre code et vos messages d'erreurs. (Rappel : "ça ne marche pas" n'est pas un message d'erreur)
    Cherchez un peu avant poser votre question : Cours et Tutoriels PHP - FAQ PHP - PDO une soupe et au lit !.

    Affichez votre code en couleurs : [CODE=php][/CODE] (bouton # de l'éditeur) et [C=php][/C]

  8. #8
    Membre confirmé
    Profil pro
    Inscrit en
    Septembre 2009
    Messages
    171
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2009
    Messages : 171
    Par défaut
    Citation Envoyé par moimp Voir le message
    Tu ne peux pas avancer si tu ne te formes pas un minimum. La fonction preg_replace que je t'ai indiquée est faite pour ça! N'attends pas tout des autres, force toi un peu. Le temps que tu passeras à te former sera largement récupéré par la suite! Lis les règles du forum!

    Si j'étais comme toi ingénieur, je ne serais pas ici.

    Je ne comprends pas vos tutos et c'est comme cela.
    Certains comprennent vite, d'autre lentement et d'autre pas du tout.
    Hé bien, bonne nouvelle pour toi, je suis dans le cas 3 pour ce problème.

    Mais merci de t'as participation.

  9. #9
    Membre confirmé
    Profil pro
    Inscrit en
    Septembre 2009
    Messages
    171
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2009
    Messages : 171
    Par défaut
    Citation Envoyé par Celira Voir le message
    Trois possibilités :
    1) Forcer le formulaire à n'accepter que le format que tu veux (via un javascript)
    2) Retirer les espaces pour travailler uniquement avec une version concaténée
    3) Travailler avec des regex pour prendre en compte "groupe de chiffres, espaces optionnels, groupe de lettres, espaces optionnels, groupe de chiffres"
    Le cas 3 me concerne je pense, car l'enregistrement c'est bien l'internaute qui le fait et je ne peux pas modifier sont indicatif si il a choisis de l'écrire de cette maière.
    Pourquoi ?: parce qu'il peut avoir des carte QSL (comme des cartes postales) qui porte son indicatif.
    Voilà pour les infos.

    Donc comme je dis plus haut, je n'arrive pas à comprendre les expression régulière, malgrè que tout les tutos épluchés.

    Les 4 possibilités d'enregistrement de l'indicatif doit être contrôler.
    Si je suis, par exemple : 14 EDX 01 alors je dois pouvoir afficher le bouton adequat "Valider".
    C'est la comparaison du 14edx01 - 14EDX01 - 14 edx 01 qui ne va pas car moi c'est 14 EDX 01
    Merci

    Et j'espère avoir été clair

  10. #10
    Membre éprouvé
    Homme Profil pro
    Ingénieur en électrotechnique retraité
    Inscrit en
    Décembre 2008
    Messages
    1 718
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Ingénieur en électrotechnique retraité

    Informations forums :
    Inscription : Décembre 2008
    Messages : 1 718
    Par défaut
    Bonjour,
    En informatique, je suis comme toi, entièrement autodidacte. J'ai aussi galéré sur les expressions régulières parce que ce n'est pas un sujet facile.
    Je ne pense pas te rendre service en t'aidant trop.
    Je te donne l'expression de base. Sur cette expression tu devras mettre des parenthèses capturantes pour les remplacer en utilisant les $1 à $n en fonction de ton besoin (voir le cours).
    L'expression (regex) à détecter est de la forme: "/^\d{2} ?[a-zA-Z]{3} ?\d{2}$/". Non ce n'est pas de l'hébreu!
    1. Le signe / délimitent la regex (début et fin). Il peut être remplacé par un autre signe comme # ou ~ pourvu que celui-ci soit le même au début et à la fin et que ce signe ne fasse pas partie de la syntaxe.
    2. Le signe ^ indique que l'expression à chercher commence comme indiqué.
    3. Le signe $ indique la fin de cette expression.
    4. \d est un raccourci qui signifie n'importe quel chiffre. Il est équivalent à [0-9].
    5. Les accolades indiquent le nombre de fois où le caractère doit être répété.
    6. L'espace est un caractère qui peut exister ou non. C'est pour cette raison qu'il est suivi d'un point d'interrogation qui est ici un quantificateur qui signifie 0 ou une fois.
    7. Tu as ensuite entre crochets une classe de caractères qui représente toutes les lettres de l'alphabet (minuscules ou majuscules).
    8. Voir plus haut pour les accolades
    9. Voir plus haut pour \d
    10. Le $ est l'opposé du ^. il signifie que l'expression doit se terminer comme ceci.


    Avant de faire le remplacement regarde déjà ce que ça donne avec preg_match.
    Essaye déjà de comprendre ça et pose des questions précises sur ce que tu auras déjà écrit.

  11. #11
    Membre confirmé
    Profil pro
    Inscrit en
    Septembre 2009
    Messages
    171
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2009
    Messages : 171
    Par défaut
    Merci d'avoir essayé.
    Hé si c'est de l'hébreu (pour moi).

    Je ne fais aucun remplacement, il doit être fait uniquement un contrôle de indicatif quelque soit sa forme dans une BDD.
    Le contrôle se fait après la sortie de la requête donc dans un if.
    A moins qu'il y est une solution dans la requête.

  12. #12
    Membre éprouvé
    Homme Profil pro
    Ingénieur en électrotechnique retraité
    Inscrit en
    Décembre 2008
    Messages
    1 718
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Ingénieur en électrotechnique retraité

    Informations forums :
    Inscription : Décembre 2008
    Messages : 1 718
    Par défaut
    La regex est un peu compliquée mais le principe est simple:
    1. Tu fais le remplacement pour mettre sous la forme que tu préfères: 14 EDX 01.
    2. Tu compares le résultat (condition if) avec ta valeur de référence.

    On ne peut pas t'aider si tu ne nous donne pas plus d'éléments.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    $majuscules= strtoupper($input) // Mise en majuscules
    $test = preg_replace('/^(\d{2}) ?([A-Z]{3}) ?(\d{2})$/', '$1.' '.$2.' '.$3', $majuscules); // Remplacement
    if ($test == $ta_variable_de_reference) { // code si vrai }
    else { // code si faux }
    Je n'ai pas testé, mais ça doit fonctionner.

  13. #13
    Membre confirmé
    Profil pro
    Inscrit en
    Septembre 2009
    Messages
    171
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2009
    Messages : 171
    Par défaut
    Bon vu que je ne pige rien ,
    Je force définitivement l'enregistrement comme je le souhaite et du coup plus simple.

    Merci tout de même

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

Discussions similaires

  1. Comparaison de données dans un tableau
    Par Azertime dans le forum LabVIEW
    Réponses: 3
    Dernier message: 12/05/2007, 23h13
  2. [VBA-E] Comparaison de donnée + Msgbox
    Par GardienDuCode dans le forum Macros et VBA Excel
    Réponses: 14
    Dernier message: 01/03/2007, 09h55
  3. comparaison de données
    Par fbu78 dans le forum Access
    Réponses: 2
    Dernier message: 01/02/2007, 08h06
  4. Comparaison de données entre deux arrays
    Par sironimo dans le forum Général Dotnet
    Réponses: 6
    Dernier message: 20/04/2006, 17h44
  5. Comparaison des données de deux schéma de mêmes structure
    Par Moez Sokrati dans le forum Oracle
    Réponses: 1
    Dernier message: 28/03/2006, 18h24

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