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

ORM PHP Discussion :

Faire un SUM avec Doctrine et récupérer la donnée dans indexSuccess.php


Sujet :

ORM PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Futur Membre du Club
    Inscrit en
    Octobre 2008
    Messages
    3
    Détails du profil
    Informations forums :
    Inscription : Octobre 2008
    Messages : 3
    Par défaut Faire un SUM avec Doctrine et récupérer la donnée dans indexSuccess.php
    Bonjour,

    N'ayant trouvé de réponse à ce problème, je me permets de poster.

    J'ai un module dans mon frontend "participation" qui liste des personnes participants à un évènement ainsi que le montant de leur participation. J'aimerais créer une colonne "Restant à payer" qui va chercher dans une table "paiement" les paiements associés à la dite participation et faire une soustraction pour savoir le montant restant.

    Pour ce faire j'ai donc modifié ma fonction executeIndex :
    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
     
      public function executeIndex(sfWebRequest $request)
      {
     /*   $this->participations = Doctrine::getTable('Participation')
          ->createQuery('a')
          ->execute();*/
     
    	$q = Doctrine_Query::create()
        ->select('p.id, p.idparticipant, p.idevenement, p.montantparticipation, SUM(pa.montant)')   
        ->from('Participation p')
    	->leftJoin('p.Paiement pa ON p.id = pa.idparticipation')
    	->groupby('p.id');
     
      $this->participations = $q->execute();
      }
    Je récupère ensuite normalement toutes les infos sauf le champ SUM(pa.montant) que je ne sais pas comment appeler.
    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
     
    <table>
      <thead>
        <tr>
    		<th>Id</th>
          <th>Participant</th>
          <th>&Eacute;venement</th>
          <th>Montant participation</th>
          <th>Restant &agrave; payer</th>
          <th>Actions</th>
        </tr>
      </thead>
      <tbody>
        <?php foreach ($participations as $participation): ?>
        <tr>
    	  <td><?php echo $participation->getId() ?></td>
          <td><?php echo $participation->getParticipant() ?></td>
          <td><?php echo $participation->getEvenement() ?></td>
          <td><?php echo $participation->getMontantParticipation() ?></td>
    	  <td><?php echo $participation->get????() ?></td>
    	  <td></td>
          <td><a href="http://fondacio.aldora.fr/backend.php/paiement/new">Ajouter un paiement</a></td>
        </tr>
        <?php endforeach; ?>
      </tbody>
    </table>
    Quand je regarde dans les logs la requête SQL s'execute bien et correspont à ce que je souhaite.

    Ma question : Ai-je le droit de faire cela, si oui comment puis-je appeler le champ SUM, si non quelle autre solution peut résoudre mon problème ?

    Cordialement

  2. #2
    Membre éclairé
    Profil pro
    Inscrit en
    Février 2009
    Messages
    321
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2009
    Messages : 321
    Par défaut
    Bonjour,
    Si tu recuperes bien les autres champs de ta requete c'est donc qu'elle s'execute bien.
    Pour recupérer ton champ SUM as tu essayé de lui donner un alias ?
    du genre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    $q = Doctrine_Query::create()
        ->select('p.id, p.idparticipant, p.idevenement, p.montantparticipation, SUM(pa.montant) as somme')   
        ->from('Participation p')
    	->leftJoin('p.Paiement pa ON p.id = pa.idparticipation')
    	->groupby('p.id');
    puis de faire un $participation->getSomme() ou encore $participation['somme'].

Discussions similaires

  1. Réponses: 3
    Dernier message: 07/10/2011, 05h44
  2. [SAX] Parser un document avec SAX et récupérer les données
    Par sperca dans le forum Format d'échange (XML, JSON...)
    Réponses: 2
    Dernier message: 06/12/2009, 14h51
  3. comment faire une requête avec une association porteuse de données
    Par gaelle95 dans le forum Accès aux données
    Réponses: 3
    Dernier message: 25/11/2009, 15h49
  4. Faire un SUM avec conditions sans tables temporaires
    Par jonklay dans le forum SQL Procédural
    Réponses: 2
    Dernier message: 03/01/2007, 09h39
  5. [EJBQL] Récupérer une donnée dans un EJB avec EJB/QL
    Par pblb62 dans le forum Java EE
    Réponses: 3
    Dernier message: 28/03/2006, 11h53

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