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 :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.
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;
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
Partager