[PEAR][DB][DB_DataObjet] Lire deux fois un résultat de requête
Bonjour à tous :P
je reprends un site fait par quelqu'un d'autre et je me trouve avec un petit souci; disons un comportement logique que j'aimerais changer pour que ça marche de façon simple.
voici le code :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
|
// on remonte tous les marchés qui appartiennent à l'entreprise du contrat en cours
$contrats = DB_DataObject::factory('Contrats');
$employeurs = DB_DataObject::factory('Employeurs');
$memployeurs = DB_DataObject::factory('Marches_employeurs');
$marches = DB_DataObject::factory('Marches');
$operations = DB_DataObject::factory('Operations');
// recuperation des employeurs type 'entreprise' car jointure avec contrat
$contrats->cont_id = $cont_id;
$employeurs->joinAdd($contrats);
$memployeurs->joinAdd($employeurs);
$marches->joinAdd($operations);
$memployeurs->joinAdd($marches);
$memployeurs->orderBy('operations.op_id, marches_employeurs.mar_id');
$memployeurs->find();
// dédoublement
$memployeurs2 = &$memployeurs; |
le programmeur a voulu faire un dédoublement pour avoir deux copies du resultat car il a besoin de les lire à des moments différents.
Sauf que cela ne marche pas, une fois l'un parcouru, lorsqu'on essaye de lire le duxième (les deux avec find puis while et fetch) il se trouve à la fin.
L'idée est bonne mais apparament il s'agit de deux references au même objet resultset.
Comment faire cela? c'est à dire comment cloner VRAIEMENT le resultant de mon find() de sorte de pouvoir faire deux lectures indépendantes sans avoir à relancer la requête en base de données?:roll:
merci à celui ou celle qui pourrait avoir une idée sur ce comportement logique mais... embêtant:?