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 :

Double insertion dans la base de données


Sujet :

Langage PHP

  1. #1
    Inactif
    Inscrit en
    Octobre 2008
    Messages
    826
    Détails du profil
    Informations forums :
    Inscription : Octobre 2008
    Messages : 826
    Points : 172
    Points
    172
    Par défaut Double insertion dans la base de données
    Bonjour,

    J'ai une classe user et dans cette classe j'ai plusieurs fonction.

    Parmis ces fonction il y en a une qui permet d'insérer un nouvelle utilisateur.

    Sauf que le membre est inscrit en double dans la BDD.

    Alors j'ai trouvé le probleme.

    Pour que vous compreniez voila a quoi ressemble cette classe.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
     
    class user {
       function newUSer() {
           if (condition) {
           		//code qui insert dans la BDD, le nouvel user
           		return true;
           }
           else return false;
       }
     
       function error() {
           if (user::newUser == true) {
           	$error = "reussi";
           }
       }
    }
    Alors le problème vient de la fonction error().

    En fait en vérifiant si la fonction newUser() retourne true sa me rééxecute cette fonction, donc l'user est inscrit en double dans la BDD.

    Comment peut on régler le problème ?

  2. #2
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    sa me rééxecute cette fonction
    ou est-elle executée la première fois ?

  3. #3
    Inactif
    Inscrit en
    Octobre 2008
    Messages
    826
    Détails du profil
    Informations forums :
    Inscription : Octobre 2008
    Messages : 826
    Points : 172
    Points
    172
    Par défaut
    La premiere fois elle est executé lapremiere fois dans la fonction newUSer().

  4. #4
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    tu veux dire que tu l'executes d'abord dans une partie du code que tu ne nous a pas montré ?
    Il suffit alors de conserver le resultat de la fonction dans un variable.

  5. #5
    Inactif
    Inscrit en
    Octobre 2008
    Messages
    826
    Détails du profil
    Informations forums :
    Inscription : Octobre 2008
    Messages : 826
    Points : 172
    Points
    172
    Par défaut
    Oui elles sont touteles les exécuté dans mon formulaire.

    Sous cette forme :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    $newUser = user;
    $newUser->newUser();

  6. #6
    Membre habitué
    Inscrit en
    Juillet 2009
    Messages
    156
    Détails du profil
    Informations forums :
    Inscription : Juillet 2009
    Messages : 156
    Points : 160
    Points
    160
    Par défaut
    et faire ta class sous cette forme la???

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    class user {
    	public $etat = false;
     
       function newUSer() {
           if (condition) {
           		//code qui insert dans la BDD, le nouvel user
           		$this->etat = true;
           		return $this;
           }
           $this->etat = false;
           	return $this;
       }
    }
    Ensuite tu l'utilises ainsi:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    $utilisateur = new user();
    $utilisateur->newUSer();
     
    if ($utilisateur->etat) {
    	echo 'réussi';
    }
    else {
    	echo 'échoué';
    }

  7. #7
    Inactif
    Inscrit en
    Octobre 2008
    Messages
    826
    Détails du profil
    Informations forums :
    Inscription : Octobre 2008
    Messages : 826
    Points : 172
    Points
    172
    Par défaut
    Toujours le même problème.

    Pour le moment j'ai inclus la gestion directement de erreurs dans la function add().

    Mais je souhaiterai quand même utiliser la fonction erreur qui permet la gestion de toutes les erreurs de toutes les fonctions.

Discussions similaires

  1. Parcours d'un fichier et insertion dans une base de données !
    Par condor_01 dans le forum Général Java
    Réponses: 2
    Dernier message: 24/04/2008, 09h24
  2. [paradox7] Problème d'insertion dans la base de données
    Par mouna201 dans le forum Bases de données
    Réponses: 4
    Dernier message: 01/02/2006, 09h47
  3. problème d'insertion dans une base de données
    Par belmansour tidjani dans le forum JDBC
    Réponses: 7
    Dernier message: 18/01/2006, 22h13
  4. [Hibernate] problème d'insertion dans la base de données
    Par Willy7901 dans le forum Eclipse Java
    Réponses: 1
    Dernier message: 18/08/2005, 13h19
  5. Probleme d'insertion dans la base de données
    Par PrinceMaster77 dans le forum ASP
    Réponses: 5
    Dernier message: 11/06/2004, 16h21

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