Précédent   Forum des professionnels en informatique > Applications > Projets > Projets hébergés > Archives > PhpMyObject
PhpMyObject Mapper de bases de données écrit en PHP qui transforme les résultats de requêtes SQL en objets (ORM). Le site : http://pmo.developpez.com
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 16/01/2008, 17h47   #1
Invité régulier
 
Étudiant
Inscription : décembre 2007
Messages : 17
Détails du profil
Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : décembre 2007
Messages : 17
Points : 6
Points : 6
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 :
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 ...
aedius est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/01/2008, 22h27   #2
Membre habitué
 
Inscription : janvier 2003
Messages : 181
Détails du profil
Informations forums :
Inscription : janvier 2003
Messages : 181
Points : 114
Points : 114
c'est un des cas d'utilisation qui n'a pas été bien testé :/

tu dois pouvoir faire dans ta boucle:

Citation:
// 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.
__________________
PhpMyObject teck leader
http://pmo.developpez.com

La justice de l'intelligence est la sagesse. Le sage n'est pas celui qui sait beaucoup de choses, mais celui qui voit leur juste mesure.
code34 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/01/2008, 23h30   #3
Membre habitué
 
Inscription : janvier 2003
Messages : 181
Détails du profil
Informations forums :
Inscription : janvier 2003
Messages : 181
Points : 114
Points : 114
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 (..)
__________________
PhpMyObject teck leader
http://pmo.developpez.com

La justice de l'intelligence est la sagesse. Le sage n'est pas celui qui sait beaucoup de choses, mais celui qui voit leur juste mesure.
code34 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 12h26.


 
 
 
 
Partenaires

Hébergement Web