Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
746 connectés 

  FORUM HardWare.fr
  Programmation
  SQL/NoSQL

  Afficher message si duplicata de champ ID

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Afficher message si duplicata de champ ID

n°1112342
suomi
Posté le 08-06-2005 à 11:13:18  profilanswer
 

Bonjour à tous,
Je suis en train de créer un formulaire en php pour insérer des données dans un BD sous mysql. J'aimerais gérer le probleme du duplicata de champ si la nouvelle clé est deja présente dans la base.
L'erreur que retourne mysql si problème de duplicata de champs est :  

Code :
  1. #1062 - Duplicata du champ


 
Voila mon idée:
 

Code :
  1. $resultat_insertion = mysql_query ($requete_insertion) or die('Erreur SQL !  '.$requete_insertion.'<br>'.mysql_error());  ;
  2. if ($resultat_insertion == "????" ) {
  3.  echo 'Identifiant deja presente dans la base';
  4.  }


 
Est -il possible de gérer ce probleme en comparant ce que retourne mysql avec quelque chose? J'ai essayé 1062 mais ça ne marche pas.
Avez vous une idée?
MErci  :hello:  

mood
Publicité
Posté le 08-06-2005 à 11:13:18  profilanswer
 

n°1112345
betsamee
Asterisk Zeperyl
Posté le 08-06-2005 à 11:16:06  profilanswer
 

tu peux faire un :

Code :
  1. select id from Tatable where $nouveauId in (select id from Tatable)


si tu as une reponse a ta requete affiche ton message sinon fait ton insert

n°1112370
suomi
Posté le 08-06-2005 à 11:24:54  profilanswer
 

oui exact, mais je voulais savoir si c'etait possible de gérer les retours d'erreurs, du coup ça evite de faire des requêtes en plus... Si il n'y as pas de clé, l'insert se passe bien, si par contre Duplicata de la clé, alors affichage du message.

n°1112384
betsamee
Asterisk Zeperyl
Posté le 08-06-2005 à 11:31:16  profilanswer
 

mysql_errno() ?

n°1112636
suomi
Posté le 08-06-2005 à 13:54:08  profilanswer
 

Tu veux dire de faire un if avec mysql_error()?
 

Code :
  1. if (mysql_error() == '1062' ) {
  2.  echo 'Donnée deja presente dans la base';
  3.  }


Pourquoi pas... mais il faut savoir maintenat quoi mettre en comparaison. Le numero de l'erreur ne marche pas...

n°1112713
betsamee
Asterisk Zeperyl
Posté le 08-06-2005 à 14:49:47  profilanswer
 

non je veux dire mysql_errno()

n°1112748
cesarr89
Posté le 08-06-2005 à 15:11:13  profilanswer
 

suomi a écrit :

Bonjour à tous,
Je suis en train de créer un formulaire en php pour insérer des données dans un BD sous mysql. J'aimerais gérer le probleme du duplicata de champ si la nouvelle clé est deja présente dans la base.
L'erreur que retourne mysql si problème de duplicata de champs est :  

Code :
  1. #1062 - Duplicata du champ


 
Voila mon idée:
 

Code :
  1. $resultat_insertion = mysql_query ($requete_insertion) or die('Erreur SQL !  '.$requete_insertion.'<br>'.mysql_error());  ;
  2. if ($resultat_insertion == "????" ) {
  3.  echo 'Identifiant deja presente dans la base';
  4.  }


 
Est -il possible de gérer ce probleme en comparant ce que retourne mysql avec quelque chose? J'ai essayé 1062 mais ça ne marche pas.
Avez vous une idée?
MErci  :hello:


 
Elle est pas censée être unique la clé par hasard?
 


---------------
!== Force et honneur ==!
n°1112886
suomi
Posté le 08-06-2005 à 16:40:07  profilanswer
 

cesarr89 a écrit :

Elle est pas censée être unique la clé par hasard?


Ben si justement.
Vu que l'identifiant est unique, la personne utilisant le formulaire peut sans le savoir rentrer des données deja présentes dans la base. D'ou si c'est le cas le message d'erreur qui apparait:

Code :
  1. #1062 - Duplicata du champ


J'aimerais donc plutot que de voir ce message afficher si il y a cette erreur sql un message plus explicite.

n°1112890
cesarr89
Posté le 08-06-2005 à 16:42:01  profilanswer
 

Attends c'est dans quel contexte aussi?
Normalement c'est rare que d'avoir ce genre de problème avec ta clé primaire....enfin c'est ce que je peu en tirer de ma petite expérience.


---------------
!== Force et honneur ==!
n°1112949
suomi
Posté le 08-06-2005 à 17:11:22  profilanswer
 

Le contexte est un peu compliqué à expliquer...  :pt1cable:  
 
Ma base va être utilisé par des personnes qui ne connnaitront pas forcement bien sql, et ils peuvent egalement vu le nombre de données présentes dans celle ci penser que il faut ajouter un tuples pour une table donnée, sans penser qu'il y est deja.  
Imgine une table personne avec comme attribut; num_secu_social comme clé primaire.
On a tous un numéro de secu social unique. Tu peux donc utiliser cet attribut comme clé primaire de ta table Personne.
 
Maintenant, un utilisateur sans vraiment l'avoir consulter pense qu'il faut rajouter Mr Dupond dans la base, hors il y est deja.... Il va donc y avoir un Duplicata du champ num_secu_social...
Lorsque ça arrive, au lieu de voir le message retour via mysql_error() j'aimerai afficher un message plus explicite permettant à l'utilisateur de comprendre plus facilement et de manière moins basique son erreur.
 
Comme l'a souligné betsamee, je pourrais d'abord faire une requete vérifiant si cette personne est deja dans la base. Mais j'aimerai savoir si il est possible directement de traiter les erreurs.

mood
Publicité
Posté le 08-06-2005 à 17:11:22  profilanswer
 

n°1113605
suomi
Posté le 09-06-2005 à 10:01:40  profilanswer
 

:bounce: Up!


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  SQL/NoSQL

  Afficher message si duplicata de champ ID

 

Sujets relatifs
Faire la somme des valeurs d'un champafficher plusieurs états à la suite ...
[PHP/MySQL] Comment afficher les sauts de ligne d'une TEXTAREA?[Mysql] Message Lu & non Lu
[PHP] Lire en permanence un champ d'une bdd mysqlAfficher une page morceau par morceau
afficher résultats de requêtes sous Excel et utiliser Vbapermettre la saisie de quotes dans un champ text
[ASP]Récupérer un champ dans une list déroulanteType de Champ Intéressant
Plus de sujets relatifs à : Afficher message si duplicata de champ ID


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR