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

PhpMyObject Discussion :

comment récupérer la clef primaire


Sujet :

PhpMyObject

  1. #1
    Membre à l'essai
    Profil pro
    Étudiant
    Inscrit en
    Décembre 2007
    Messages
    17
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2007
    Messages : 17
    Points : 11
    Points
    11
    Par défaut comment récupérer la clef primaire
    salut


    ça faisait longtemps

    je bloque sur un point important, j'utilise le code suivant : en rouge ce qui ne marche pas :

    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
    17
    18
    		$controler = new PMO_MyController();
    		$map = $controler->queryController("SELECT * FROM ".$serveur."_cnf_debut_bat where idRac = '".$idRac."' ;");
    		while ($result = $map->fetchMap())
    		{
    			$batiment = PMO_MyObject::factory($serveur."_batiment");
    			$batiment->idVil = $idVil;
    			$batiment->idLiB = $result[$serveur."_cnf_debut_bat"]->idLiB;
    			try
    			{
    				$batiment->commit();
    			}
    			catch(Exception $e)
    			{
    				die($e->getMessage());
    			}
    
                             $batiment->idBat;
                   }
    Et là, il me faudrait dans le while l'id du batiment que je viens d'insérer pour le mettre en clef secondaire dans une autre table, le soucis étant qu'a ce moment là, il n'est uniquement déterminer que par son idBat que je ne peus pas prendre ...

    Comment faire ?

    Sachant que idBat est bien autoincrémenter dans ma bdd ...

  2. #2
    Membre habitué
    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    181
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 181
    Points : 162
    Points
    162
    Par défaut
    c'est un des cas d'utilisation qui n'a pas été bien testé :/

    tu dois pouvoir faire dans ta boucle:

    // c'est un singleton qui te renvoit la référence de la classe sgbd déjà instancié par PMO
    $SGBD = PMO_MySgbd::factory();

    // et la tu lui demandes de retourner la valeur de la clef autoincrement qui vient d'être inséré
    $batiment->idBat = $SGBD->getLastId();
    Je ne connais pas le comportement de cette méthode avec plusieurs clefs primaire.

  3. #3
    Membre habitué
    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    181
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 181
    Points : 162
    Points
    162
    Par défaut
    Pour info:

    l'autoincrement sera géré automatiquement dans la 0.13 sans faire appel à la class PMO_MySgbd (comme tu l'as utilisé).

    En gros, le champs autoincrement de l'objet se met à jour automatiquement dès qu'il est commit().

    La version le gérant est déjà sur le cvs (..)

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

Discussions similaires

  1. Réponses: 6
    Dernier message: 01/01/2009, 20h23
  2. comment modifier mes clefs primaires
    Par turican2 dans le forum Débuter
    Réponses: 5
    Dernier message: 18/10/2008, 10h11
  3. [MEA]Comment représenter 1 clef primaire composée
    Par marman dans le forum Schéma
    Réponses: 7
    Dernier message: 29/01/2007, 16h35
  4. Comment comment définir une clef primaire dans une table??
    Par nek_kro_kvlt dans le forum Bases de données
    Réponses: 4
    Dernier message: 07/02/2005, 22h06
  5. récupérer la clef primaire d'une table
    Par orionis69 dans le forum MS SQL Server
    Réponses: 3
    Dernier message: 28/02/2004, 14h00

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