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

Bibliothèques et frameworks PHP Discussion :

[PEAR][DB][DB_DataObjet] Lire deux fois un résultat de requête


Sujet :

Bibliothèques et frameworks PHP

  1. #1
    Membre actif
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    821
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 821
    Points : 280
    Points
    280
    Par défaut [PEAR][DB][DB_DataObjet] Lire deux fois un résultat de requête
    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

  2. #2
    Membre actif
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    821
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 821
    Points : 280
    Points
    280
    Par défaut
    J'ai trouvé ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    array $DB_DataObject->toArray ([string $format = '%s' [, bool $hideEmpty = FALSE]])
    peut-être que ça peut servir

  3. #3
    Membre actif
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    821
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 821
    Points : 280
    Points
    280
    Par défaut
    en fait ça copie la structure mais pas les valeurs retournées ...

    y a quelqu'un?

Discussions similaires

  1. Comment lire deux fois la meme table avec une clé différente
    Par Denis_67 dans le forum MS SQL Server
    Réponses: 3
    Dernier message: 09/12/2013, 11h25
  2. Deux fois la même sous-requête
    Par basile238 dans le forum Requêtes
    Réponses: 2
    Dernier message: 25/03/2008, 09h22
  3. MySQL me retourne deux fois le même résultat
    Par Romalafrite dans le forum Requêtes
    Réponses: 4
    Dernier message: 03/09/2006, 23h11
  4. [SQL2K]Procédure stockée qui renvoit deux fois le résultat
    Par neuropathie dans le forum MS SQL Server
    Réponses: 3
    Dernier message: 16/05/2006, 16h38
  5. Lire deux fois un inputstream
    Par Guybrush dans le forum Entrée/Sortie
    Réponses: 6
    Dernier message: 05/09/2005, 14h50

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