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

Langage PHP Discussion :

Stocker des objets dans une collection


Sujet :

Langage PHP

  1. #1
    Membre à l'essai
    Inscrit en
    Février 2008
    Messages
    88
    Détails du profil
    Informations forums :
    Inscription : Février 2008
    Messages : 88
    Points : 14
    Points
    14
    Par défaut Stocker des objets dans une collection
    Bonjour,

    Je cherche une façon de faire pour stocker des objest de meme type dans un tableau ou une collection, sachant que mes objets sont instanciés dans une boucle un à un et qu'il faut que je les intègre dans ma collection dès qu'ils sont créés pour ne pas les perdre.

    L'idée est de faire une itération ou à chaque tour j'instancie une classe et je met cette instance dans un tableau.
    Je ne vois pas comment faire en PHP.
    Merci pour vos réponses.

    P.S : j'ai trouvé la Classe ArrayObject et j'ai pondu un script comme ceci :

    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
    24
    25
    26
    27
    28
    29
     
    public function /*array(ArticleDTO)*/ getAllTitleArticle()
        {
            try
            {
                $pdo = ConnexionPDO::getInstance();
                $sql = "SELECT * FROM article";
                $st = $pdo->getDBH()->prepare($sql);
                $st->execute();
     
                /*ArticleDTO*/ $articleDTO = new ArticleDTO();
                $array = new ArrayObject();//array();//ArrayObject();
     
                while($resultat->$st->fetch())
                {
                    $articleDTO->setIdArticle($resultat['id']);
                    $articleDTO->setTitre($resultat['titre']);
                    $articleDTO->setTimestamp($resultat['date']);
                    //$articleDTO->setContenu($resultat['contenu']);
     
                    $array->append($articleDTO);
                }
            }
            catch (Exception $e){    echo 'Exception reçue : ',  $e->getMessage(), "\n";        }
     
            CloseConnBD::closeConnection($pdo->getDBH());
     
            return $array;
        }

    Mais cela ne fonctionne pas.

  2. #2
    Membre averti
    Homme Profil pro
    Inscrit en
    Mai 2004
    Messages
    803
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2004
    Messages : 803
    Points : 356
    Points
    356
    Par défaut
    Bonjour,

    Voici un bout de code que j'utilise et qui fonctionne :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    for($i = 0; $i < $cpt; $i++) //Liste des événements pères : affichage de l'icône, de la date de l'événement, du descriptif de l'événement avec un lien pour visualiser le contenu de celui-ci et du prestataire de l'événement
         {
          $tableau[0] = $resuReq4[$i]['id'];
    	    $tabObj[$i][0] = new CObjet($tableau[0]);
          $_SESSION['tabObj'] = serialize($tabObj);
          $tabdonnesObj = $tabObj[$i][0]->getAll();
    J'espère que ça pourra t'aider.

  3. #3
    Membre confirmé Avatar de goodpz
    Profil pro
    Inscrit en
    Février 2007
    Messages
    475
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 475
    Points : 514
    Points
    514
    Par défaut
    kaljerhom, je pense que ton problème est dû au fait que $articleDTO est créé une seule fois en dehors de la boucle. Essai ça:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    $array = new ArrayObject();
    while($resultat->$st->fetch()) {
      $articleDTO = new ArticleDTO();  // on le créé ici
      $articleDTO->setIdArticle($resultat['id']);
      $articleDTO->setTitre($resultat['titre']);
      $articleDTO->setTimestamp($resultat['date']);
      $array->append($articleDTO);
    }

  4. #4
    Membre à l'essai
    Inscrit en
    Février 2008
    Messages
    88
    Détails du profil
    Informations forums :
    Inscription : Février 2008
    Messages : 88
    Points : 14
    Points
    14
    Par défaut
    Qq un sait il comment on utilise ArrayObject ?
    Je veux il semble qu'il prenne en paramètre un tableau.
    Est ce que ca marche avec un objet?
    Si non y a -t-il un Objet qui puisse jouer le role de Collection en php5?
    Ca serait fou qu'il n'y ait rien non?

Discussions similaires

  1. [XL-2007] Stocker des ranges dans une collection
    Par digitNoise dans le forum Macros et VBA Excel
    Réponses: 0
    Dernier message: 21/01/2013, 18h09
  2. [VB.NET] Suppression d'objets dans une collection
    Par master56 dans le forum VB.NET
    Réponses: 7
    Dernier message: 03/06/2010, 21h46
  3. [Débutante]Stocker des fichiers dans une BD
    Par bouba83 dans le forum Access
    Réponses: 5
    Dernier message: 19/05/2006, 08h41
  4. Comment stocker des images dans une base de données ?
    Par [Silk] dans le forum Bases de données
    Réponses: 4
    Dernier message: 21/07/2005, 11h29
  5. Réponses: 2
    Dernier message: 15/06/2005, 17h32

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