Bonjour à tous

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 : 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
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?

merci à celui ou celle qui pourrait avoir une idée sur ce comportement logique mais... embêtant