|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||||
|
Invité de passage
![]() Romain Tiennot Inscription : novembre 2010 Messages : 10 ![]() |
Bonjour,
Je début en BDD et je rencontre un soucis au sujet de la verification d'un doublon afin de valider un formulaire. Le formulaire comporte deux champs : "Nom" et "Prenom". Une fois le formulaire "Valider", il verifie que le "Nom" et Prenom" n'existe pas de facon binaire. Si les deux valeurs se retrouve à 1, il ne valide pas le formulaire : Donc quand je valide il se produit la chose suivante : ***Formulaire*** Nom = Toto Prenom = Jean-Pierre ***Verification après validation*** "Toto" existe-t-il dans la collone nom ? "NON" donc "0" "Jean-Pierre" existe-t-il dans la collone prenom ? "NON" donc "0" Je valide le formulaire ***Formulaire*** Nom = Toto Prenom = Olivier ***Verification après validation*** "Toto" existe-t-il dans la collone nom ? "OUI" donc "1" "Olivier" existe-t-il dans la collone prenom ? "NON" donc "0" Je valide le formulaire ***Formulaire*** Nom = Dupuis Prenom = Jean-Pierre ***Verification après validation*** "Dupuis" existe-t-il dans la collone nom ? "NON" donc "0" "Jean-Pierre" existe-t-il dans la collone prenom ? "OUI" donc "1" Je valide le formulaire Et le probleme est ICI : ***Formulaire*** Nom = Dupuis Prenom = Olivier ***Verification après validation*** "Dupuis" existe-t-il dans la collone nom ? "OUI" donc "1" "Olivier" existe-t-il dans la collone prenom ? "OUI" donc "1" Je valide le formulaire Effectivement, il existe bien un "Dupuis" et un "Olivier" dans la collone "Nom" et "Prenom" de la base de donnée mais le "Dupuis" correspond à "Dupuis Jean-Pierre" et "Olivier" à "Toto Olivier". Ma solution pour résoudre ceci est que si l'on obtient "1" pour le nom et "1" pour le prenom, c'est de verifier que l'ID du "Nom" et du "Prenom" ne soit pas identique. Dans le cas contraire, effectivement, il y a un doublon ! J'espere avoir été claire... Voici un schema de la base : Code :
Voici mon code : Code :
Cordialement |
||||
|
|
00
|
|
|
#2 |
![]() ![]() Inscription : septembre 2010 Messages : 7 101 ![]() |
fais un seule requête qui vérifie le nom et le prénom en même temps...
__________________
http://blog.stealth35.com/ |
|
|
01
|
|
|
#3 | ||
![]() ![]() Benjamin DelespierreDéveloppeur Web Inscription : février 2010 Messages : 2 984 ![]() |
Hello
Je pense que tu dois implémenter cette sécurité à deux niveaux: - au niveau de la bdd en mettant une clé unique sur les deux champs concernés (attention, c'est le couple qui est unique) - au niveau de PHP avant de faire la requête, tu fais un rapide select de ces deux champs pour vérifier qu'ils n'existent pas Le comportement de ton script doit donc être: Code :
__________________
A la recherche d'un framework MVC facile a prendre en main ? Essayez Axiom Nouveau: la référence d'Axiom est disponible sur GitHub (je la peaufine en ce moment même). Un problème correctement identifié est à moitié résolu, évitez de poster l'intégralité de votre code avec pour seule explication "ça ne marche pas...". Pour identifier correctement vos problèmes PHP, utilisez la gestion des erreurs et xdebug. Les boutons et existent, servez-vous en
|
||
|
10
|
|
|
#4 |
|
Invité de passage
![]() Romain Tiennot Inscription : novembre 2010 Messages : 10 ![]() |
Merci pour vos réponses.
Pour la clé unique, j'ai un "idClient" qui s’incrémente automatiquement a chaque ajout dans la base. C'est ce que tu as voulu dire? Ensuite, je vais essayé ton code. Cordialement |
|
|
00
|
|
|
#5 |
|
Invité de passage
![]() Romain Tiennot Inscription : novembre 2010 Messages : 10 ![]() |
Helas, je peux créer deux "Jean-Pierre", "Toto" et je n'ai pas d'erreur...
Je creuse. |
|
|
00
|
|
|
#6 |
![]() ![]() Inscription : septembre 2010 Messages : 7 101 ![]() |
commence par créer l'index unique pour les deux champs, mais n'oublie pas que les homonymes existes...
__________________
http://blog.stealth35.com/ |
|
|
00
|
|
|
#7 | |||
![]() ![]() Benjamin DelespierreDéveloppeur Web Inscription : février 2010 Messages : 2 984 ![]() |
Citation:
Fais: Code :
__________________
A la recherche d'un framework MVC facile a prendre en main ? Essayez Axiom Nouveau: la référence d'Axiom est disponible sur GitHub (je la peaufine en ce moment même). Un problème correctement identifié est à moitié résolu, évitez de poster l'intégralité de votre code avec pour seule explication "ça ne marche pas...". Pour identifier correctement vos problèmes PHP, utilisez la gestion des erreurs et xdebug. Les boutons et existent, servez-vous en
|
|||
|
10
|
|
|
#8 |
|
Invité de passage
![]() Romain Tiennot Inscription : novembre 2010 Messages : 10 ![]() |
Problème résolu !!!
En revanche, j'ai effectué la commande suivante : Code :
ALTER TABLE `client`ADD UNIQUE INDEX (`nomClient`,`prenomClient`); Merci encore. |
|
|
00
|
|
|
#9 |
![]() ![]() Benjamin DelespierreDéveloppeur Web Inscription : février 2010 Messages : 2 984 ![]() |
Cette commande SQL permet de mettre un index unique sur le couple nom/prénom de ta table client. Cela empêche les doublons au niveau des insertions: si on tente d'en insérer un, ça échoue et une erreur sera levée par mysql.
ça ne te fera pas de mal de lire ça http://dev.mysql.com/doc/refman/5.0/...l-indexes.html
__________________
A la recherche d'un framework MVC facile a prendre en main ? Essayez Axiom Nouveau: la référence d'Axiom est disponible sur GitHub (je la peaufine en ce moment même). Un problème correctement identifié est à moitié résolu, évitez de poster l'intégralité de votre code avec pour seule explication "ça ne marche pas...". Pour identifier correctement vos problèmes PHP, utilisez la gestion des erreurs et xdebug. Les boutons et existent, servez-vous en
|
|
00
|
Copyright © 2000-2012 - www.developpez.com