Zend FR

Consultez la FAQ sur le ZF avant de poster une question

Vous n'êtes pas identifié.

#1 23-05-2010 01:19:42

shadypierre
Membre
Date d'inscription: 24-03-2010
Messages: 617

[Résolu] Erreur d'intégrité lors de l'ajout d'un tuple dans une table

Bonjour à tous, j'ai un ptit soucis lors d'un enregistrement d'un objet dans ma base de donnée. J'ai donc une table "commander" et une table "posséder" qui via une clé étrangère fait le lien entre une commande et les produits quel contient, exemple :
J'enregistre dans la base une commande, elle possède un identifiant, l'id du client qui la réaliser ainsi que la date, puis dans la table posséder j'ai le couple idCommande et référence du produit en clé primaire, puis les champs quantité et taille.

L'enregistrement d'une commande ce réalise parfaitement, mais lors de l'ajout de tuple dans la table "posséder" j'obtiens une erreur intégrité sur le champs idCommande sad

Mon code est le suivant :

Code:

$commande = new Application_Model_Commande();
$commande->setIdClient($idClient);
$commandeMapper  = new Application_Model_CommandeMapper();
$idCommande = $commandeMapper->save($commande); //enregistre la commande et récupère l'id de celle-ci

// Jusque la aucun soucis
// Ajout des produits de la commande dans la table posséder
$commandePossederMapper = new Application_Model_PossederMapper();
            foreach ($articles as $article){
                $commandePosseder = new Application_Model_Posseder();
                $commandePosseder->setIdCommande($idCommande)
                                 ->setRefProd($article['refProd'])
                                 ->setIdTaille($article['idTaille'])
                                 ->setQuantite($article['quantite']);
                // Enregistre dans la bd
                $commandePossederMapper->save($commandePosseder); // ERREUR ICI
            }

Voila, et le code la fonction save()

Code:

    public function save(Application_Model_Posseder $commandePosseder)
    {
        $data = array(
            'idCommande'  => $commandePosseder->getIdCommande(),
            'refProd'     => $commandePosseder->getRefProd(),
            'idTaille'    => $commandePosseder->getIdTaille(),
            'quantite'    => $commandePosseder->getQuantite(),
        );
        $this->getDbTable()->insert($data);
    }

sad Merci pour l'aide que vous pourrez m'apporter big_smile

Dernière modification par shadypierre (23-05-2010 16:36:06)

Hors ligne

 

#2 23-05-2010 16:21:25

shadypierre
Membre
Date d'inscription: 24-03-2010
Messages: 617

Re: [Résolu] Erreur d'intégrité lors de l'ajout d'un tuple dans une table

Après test il s'avère que si je met ceci

Code:

$commandePosseder->setIdCommande(1)

ça fonctionne, c'est donc l'id récupèré ici :

Code:

$idCommande = $commandeMapper->save($commande);

qui ne va pas... Mais à priori d'après la doc pour récupérer l'id de l'insertion c'est de cette manière que l'on fait non?

Hors ligne

 

#3 23-05-2010 16:35:54

shadypierre
Membre
Date d'inscription: 24-03-2010
Messages: 617

Re: [Résolu] Erreur d'intégrité lors de l'ajout d'un tuple dans une table

Problème résolu je ne retourner pas bien le insert() dans ma fonction save(), merci à ce qui on pris le temps de me lire wink

Hors ligne

 

Pied de page des forums

Propulsé par PunBB
© Copyright 2002–2005 Rickard Andersson
Traduction par punbb.fr

Graphisme réalisé par l'agence Rodolphe Eveilleau
Développement par Kitpages