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

Zend Framework PHP Discussion :

Aide tableau sous zend


Sujet :

Zend Framework PHP

  1. #1
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2015
    Messages
    75
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2015
    Messages : 75
    Points : 54
    Points
    54
    Par défaut Aide tableau sous zend
    Salutation tout le monde!!

    Voila je suis bloqué sur un petit problème. Bon je sais faire un tableau classique en html et utiliser des boucles for en php pour le remplir. Mais en passant sous Zend cela me pose problème. En faites j'ai une requête dans laquelle je fait la somme de tout les montants selon une date précise. Et ce tableau affiche dans chaque colonne (qui est un mois comme janvier par exemple) le montant (sommé) et chaque ligne représente une année. Donc tout ce fait via des boucles mais avec zend il me retourne qu'un seul résultat dans la 1e colonne et j'ai rien dans le reste du tableau. voici mon code:

    mon action de mon controller:

    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
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
     public function indexAction()
        {
     
         $table_consommation = new Application_Model_Consommation();
     
             for($i=2014;$i<=3000;$i++){
     
                 for($j=1;$j<=9;$j++){
                     $j = '0'.$j;
                     $select = $table_consommation->select();
                     $select->from('consommation', array('sum(MONTANT_TOTAL) as montant_total'))
                             ->where('DATE_RELEVE like ?', '%'.$i.'-'.$j.'%');
                     $res = $table_consommation->fetchAll($select);
                     foreach($res as $consommation)
                    {   
                       if($consommation->montant_total != null){  
                       // echo "<td class='cn_td'>"; echo $consommation->montant_total."€";echo "</td>";     
                           $this->view->montant = $consommation->montant_total;
                       }
                    }
     
                 }
                 for($j=10;$j<=12;$j++){
                     $select = $table_consommation->select();
                     $select ->from('consommation', array('sum(MONTANT_TOTAL) as montant_total'))
                             ->where('DATE_RELEVE like ?', '%'.$i.'-'.$j.'%');
                     $res = $table_consommation->fetchAll($select);
                     foreach($res as $consommation)
                    {   
                       if($consommation->montant_total != null){  
                       // echo "<td class='cn_td'>"; echo $consommation->montant_total."€";echo "</td>";   
                           $this->view->montant = $consommation->montant_total;
                       }
                    }
     
                 } 
             }
     
     
        }
    Et ma vue:

    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
    <div id="depense">
     
      <h1 class='cn_h1' style='margin: 0 10px 10px 10px; padding: 0;'>Dépenses</h1>
     
         <table id='table_depense'>
           <tr>  
               <th class='cn_th'></th>
               <th class='cn_th'>Janvier</th>
               <th class='cn_th'>Fevrier</th>
               <th class='cn_th'>Mars</th>
               <th class='cn_th'>Avril</th>
               <th class='cn_th'>Mai</th>
               <th class='cn_th'>Juin</th>
               <th class='cn_th'>Juillet</th>
               <th class='cn_th'>Aout</th>
               <th class='cn_th'>Septembre</th>
               <th class='cn_th'>Octobre</th>
               <th class='cn_th'>Novembre</th>
               <th class='cn_th'>Decembre</th>
           </tr>
           <tr>
             <td class='cn_td'></td>
     
             <td class='cn_td'><?php echo $this->montant ?></td>
     
           </tr>
         </table>
    </div>
    Quelqu'un aurait il une solution ? Car sinon je dois passer par du php sur toute la vue pour le faire et ce n'est pas du tout la politique du framework. Je vous en remercie d'avance .

  2. #2
    Membre régulier
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2004
    Messages
    319
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Distribution

    Informations forums :
    Inscription : Décembre 2004
    Messages : 319
    Points : 83
    Points
    83
    Par défaut
    Bonjour,

    Je suis pas un expert mais en regardant ton code je remarqjue :

    1. Dans ton code, dans la boucle :
    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
    for($i=2014;$i<=3000;$i++){
     
                 for($j=1;$j<=9;$j++){
                     $j = '0'.$j;
                     $select = $table_consommation->select();
                     $select->from('consommation', array('sum(MONTANT_TOTAL) as montant_total'))
                             ->where('DATE_RELEVE like ?', '%'.$i.'-'.$j.'%');
                     $res = $table_consommation->fetchAll($select);
                     foreach($res as $consommation)
                    {   
                       if($consommation->montant_total != null){  
                       // echo "<td class='cn_td'>"; echo $consommation->montant_total."€";echo "</td>";     
                           $this->view->montant = $consommation->montant_total; //<======= tu ecrase a chaque fois dans ta vue la valeur montant donc ce sera le derniere prise en compte pas logique ....
                       }
                    }
    Le fait de 2 boucles tu te complique la vie ....

    Si je comprend bien que tu veux pour chaque moi le montant ?

    Donc a vue de nez tu peux faire un code du style :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $this->view->montant[$j] = $consommation->montant_total;
    Comme cela dans la vue tu recupere un tableau de mois ....

    Dis mois si tu as compris ?

  3. #3
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2015
    Messages
    75
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2015
    Messages : 75
    Points : 54
    Points
    54
    Par défaut
    Bonjour Paul75!

    Merci pour ton aide c'est très gentils! Oui je pense avoir compris, pour répondre à ta question oui c'est ça je veux le montant pour chaque mois (ce qui représente une colonne donc 12 en tout) et chaque année (qui correspond a une ligne) j'espère avoir été précis.
    J'ai donc remplacé la ligne que tu ma montré par celle que tu ma donné:

    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
    30
    31
    32
    33
    34
    35
    for($i=2014;$i<=3000;$i++){
     
                 for($j=1;$j<=9;$j++){
                     $j = '0'.$j;
                     $select = $table_consommation->select();
                     $select->from('consommation', array('sum(MONTANT_TOTAL) as montant_total'))
                             ->where('DATE_RELEVE like ?', '%'.$i.'-'.$j.'%');
                     $res = $table_consommation->fetchAll($select);
                     foreach($res as $consommation)
                    {   
                       if($consommation->montant_total != null){  
                       // echo "<td class='cn_td'>"; echo $consommation->montant_total."€";echo "</td>";     
                           //$this->view->montant = $consommation->montant_total;
                           $this->view->montant[$j] = $consommation->montant_total;
                       }
                    }
     
                 }
                 for($j=10;$j<=12;$j++){
                     $select = $table_consommation->select();
                     $select ->from('consommation', array('sum(MONTANT_TOTAL) as montant_total'))
                             ->where('DATE_RELEVE like ?', '%'.$i.'-'.$j.'%');
                     $res = $table_consommation->fetchAll($select);
     
                     foreach($res as $consommation)
                    {   
                       if($consommation->montant_total != null){  
                       // echo "<td class='cn_td'>"; echo $consommation->montant_total."€";echo "</td>";   
                          // $this->view->montant = $consommation->montant_total; 
                           $this->view->montant[$j] = $consommation->montant_total;
                       }
                    }
     
                 } 
             }
    Mais j'ai des erreurs:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Notice: Indirect modification of overloaded property Zend_View::$montant has no effect in E:\Intranet\parctel\application\controllers\DepenseController.php on line 34 Notice: Indirect modification of overloaded property Zend_View::$montant has no effect in E:\Intranet\parctel\application\controllers\DepenseController.php on line 34 Notice: Indirect modification of overloaded property Zend_View::$montant has no effect in E:\Intranet\parctel\application\controllers\DepenseController.php on line 34 Notice: Indirect modification of overloaded property Zend_View::$montant has no effect in E:\Intranet\parctel\application\controllers\DepenseController.php on line 34 Notice: Indirect modification of overloaded property Zend_View::$montant has no effect in E:\Intranet\parctel\application\controllers\DepenseController.php on line 34 Notice: Indirect modification of overloaded property Zend_View::$montant has no effect in E:\Intranet\parctel\application\controllers\DepenseController.php on line 34 Notice: Indirect modification of overloaded property Zend_View::$montant has no effect in E:\Intranet\parctel\application\controllers\DepenseController.php on line 34 Notice: Indirect modification of overloaded property Zend_View::$montant has no effect in E:\Intranet\parctel\application\controllers\DepenseController.php on line 34 Notice: Indirect modification of overloaded property Zend_View::$montant has no effect in E:\Intranet\parctel\application\controllers\DepenseController.php on line 34 Notice: Indirect modification of overloaded property Zend_View::$montant has no effect in E:\Intranet\parctel\application\controllers\DepenseController.php on line 50 Notice: Indirect modification of overloaded property Zend_View::$montant has no effect in E:\Intranet\parctel\application\controllers\DepenseController.php on line 50 Notice: Indirect modification of overloaded property Zend_View::$montant has no effect in E:\Intranet\parctel\application\controllers\DepenseController.php on line 50 Notice: Indirect modification of overloaded property Zend_View::$montant has no effect in E:\Intranet\parctel\application\controllers\DepenseController.php on line 34 Notice: Indirect modification of overloaded property Zend_View::$montant has no effect in E:\Intranet\parctel\application\controllers\DepenseController.php on line 34 Notice: Indirect modification of overloaded property Zend_View::$montant has no effect in E:\Intranet\parctel\application\controllers\DepenseController.php on line 34 Notice: Indirect modification of overloaded property Zend_View::$montant has no effect in E:\Intranet\parctel\application\controllers\DepenseController.php on line 34 Notice: Indirect modification of overloaded property Zend_View::$montant has no effect in E:\Intranet\parctel\application\controllers\DepenseController.php on line 34 Notice: Indirect modification of overloaded property Zend_View::$montant has no effect in E:\Intranet\parctel\application\controllers\DepenseController.php on line 34 Notice: Indirect modification of overloaded property Zend_View::$montant has no effect in E:\Intranet\parctel\application\controllers\DepenseController.php on line 34 Notice: Indirect modification of overloaded property Zend_View::$montant has no effect in E:\Intranet\parctel\application\controllers\DepenseController.php on line 34 Notice: Indirect modification of overloaded property Zend_View::$montant has no effect in E:\Intranet\parctel\application\controllers\DepenseController.php on line 34 Notice: Indirect modification of overloaded property Zend_View::$montant has no effect in E:\Intranet\parctel\application\controllers\DepenseController.php on line 50 Notice: Indirect modification of overloaded property Zend_View::$montant has no effect in E:\Intranet\parctel\application\controllers\DepenseController.php on line 50 Notice: Indirect modification of overloaded property Zend_View::$montant has no effect in E:\Intranet\parctel\application\controllers\DepenseController.php on line 50
    Et j'ai quelques questions, avec ta méthode il reviendra à la ligne quand on changera d'année pour afficher les montant par mois de cette nouvelle année ? Et comment je peux faire pour bien lire mon tableau au niveau de ma vue ?

    Encore merci pour ton aide .

  4. #4
    Membre régulier
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2004
    Messages
    319
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Distribution

    Informations forums :
    Inscription : Décembre 2004
    Messages : 319
    Points : 83
    Points
    83
    Par défaut
    déjà pourquoi le "for($i=2014;$i<=3000;$i++){" ?.??? Pourquoi 3000 ?????

    Bon ma réponse était plus pour que tu comprenne la logique mais c'est normal l'erreur.

    Il faut que tu passe par une variable :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    $montant = array();
    ...
    for( ... ) {
         $montant[$j] = "";
    }

  5. #5
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2015
    Messages
    75
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2015
    Messages : 75
    Points : 54
    Points
    54
    Par défaut
    Le 3000 c'était pour mes tests car en faites je compte utiliser un select pour régler la boucle for comme avec des bornes pour parcourir des années mais c'est vrai que la 3000 c'est beaucoup du coup j'ai réduit le nombre.
    Oui j'ai vu qu'il fallait déclarer le tableau avant mais la je me heurte à la même erreur car je suis passé à un tableau a plusieurs dimensions. Car il doit contenir l'année en 1er puis pour chaques année le montant.
    tiens voici se que j'ai fait:
    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
    30
     public function indexAction()
        {
     
         $table_consommation = new Application_Model_Consommation();
           $montant = array();
             for($i=2014;$i<=2050;$i++){
                 $montant[] = $i;
                 for($j=1;$j<=12;$j++){
                     if($j<=9){
                     $j = '0'.$j;
                     }
                     $select = $table_consommation->select();
                     $select->from('consommation', array('sum(MONTANT_TOTAL) as montant_total'))
                             ->where('DATE_RELEVE like ?', '%'.$i.'-'.$j.'%');
                     $res = $table_consommation->fetchAll($select);
                   //  var_dump($res[0]['montant_total']);
     
                       if($res[0]['montant_total'] != null){  
                       // echo "<td class='cn_td'>"; echo $consommation->montant_total."€";echo "</td>";     
                           //$this->view->montant = $consommation->montant_total;
                           $montant[$i][] = $res[0]['montant_total'];
                       }
     
     
                 }
     
             }
     
             $this->view->montant = $montant;
        }
    Et la vue pour aussi si tu peux m'aider pour l'affichage:
    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
    30
    31
    32
    33
    34
    <div id="depense">
     
      <h1 class='cn_h1' style='margin: 0 10px 10px 10px; padding: 0;'>Dépenses</h1>
     
         <table id='table_depense'>
           <tr>  
               <th class='cn_th'></th>
               <th class='cn_th'>Janvier</th>
               <th class='cn_th'>Fevrier</th>
               <th class='cn_th'>Mars</th>
               <th class='cn_th'>Avril</th>
               <th class='cn_th'>Mai</th>
               <th class='cn_th'>Juin</th>
               <th class='cn_th'>Juillet</th>
               <th class='cn_th'>Aout</th>
               <th class='cn_th'>Septembre</th>
               <th class='cn_th'>Octobre</th>
               <th class='cn_th'>Novembre</th>
               <th class='cn_th'>Decembre</th>
           </tr>
     
           <?php
     
           foreach($this->montant as $annee => $montant_mois) {  ?>
           <tr>
             <td class='cn_td'><?php echo $annee;?></td>
           <?php   
           foreach($montant_mois as  $montant){  ?>
             <td class='cn_td'><?php  echo $montant; ?></td>
           <?php } ?>
           </tr>
           <?php } ?>
         </table>
    </div>
    EDIT: C'est bon j'ai trouvé la solution et ça fonctionne plutot pas mal:
    controller:
    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
    30
    31
    32
     public function indexAction()
        {
     
         $table_consommation = new Application_Model_Consommation();
           $montant = array();
          // $montant[]=array();
             for($i=2014;$i<=2020;$i++){
                // $montant[] = $i;
                 $montant[$i]=array();
                 for($j=1;$j<=12;$j++){
                     if($j<=9){
                     $j = '0'.$j;
                     }
                     $select = $table_consommation->select();
                     $select->from('consommation', array('sum(MONTANT_TOTAL) as montant_total'))
                             ->where('DATE_RELEVE like ?', '%'.$i.'-'.$j.'%');
                     $res = $table_consommation->fetchAll($select);
                   //  var_dump($res[0]['montant_total']);
     
                       if($res[0]['montant_total'] != null){  
                       // echo "<td class='cn_td'>"; echo $consommation->montant_total."€";echo "</td>";     
                           //$this->view->montant = $consommation->montant_total;
                           $montant[$i][] = $res[0]['montant_total'];
                       }
     
     
                 }
     
             }
     
             $this->view->montant = $montant;
        }
    Et la vue:
    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
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    <div id="depense">
     
      <h1 class='cn_h1' style='margin: 0 10px 10px 10px; padding: 0;'>Dépenses</h1>
      <select name="select_annee" id="select_annee">
          <option value="">---</option>
          <?php for($i=2010;$i<=2100;$i+=5){ 
              $fin = $i +5;
              ?>
          <option value="<?php echo $i."-".$fin;?>"><?php echo $i."-".$fin;?></option>
          <?php }?>
      </select>
         <table id='table_depense'>
           <tr>  
               <th class='cn_th'></th>
               <th class='cn_th'>Janvier</th>
               <th class='cn_th'>Fevrier</th>
               <th class='cn_th'>Mars</th>
               <th class='cn_th'>Avril</th>
               <th class='cn_th'>Mai</th>
               <th class='cn_th'>Juin</th>
               <th class='cn_th'>Juillet</th>
               <th class='cn_th'>Aout</th>
               <th class='cn_th'>Septembre</th>
               <th class='cn_th'>Octobre</th>
               <th class='cn_th'>Novembre</th>
               <th class='cn_th'>Decembre</th>
           </tr>
     
           <?php
           $result = count($this->montant); 
           foreach($this->montant as $annee => $montant_mois) {  ?>
                <tr>
                    <td class='cn_td'><?php echo $annee;?></td>
                 <?php if(!empty($montant_mois)){ ?> 
                  <?php foreach($montant_mois as  $montant){  ?>
                        <?php if($montant != null){?>
                        <td class='cn_td'><?php  echo $montant."€"; ?></td>
                        <?php }
                        else {?>
                        <td class='cn_td'><?php  echo "0€"; ?></td>
                        <?php } ?>
                <?php }
                 } else {
                        for($j=1;$j<=12;$j++){ ?>
                            <td class='cn_td'><?php  echo "0€"; ?></td>
                        <?php }
                    } ?>
                </tr>
           <?php } ?>
         </table>
    </div>
    Encore merci pour ton aide!

  6. #6
    Membre régulier
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2004
    Messages
    319
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Distribution

    Informations forums :
    Inscription : Décembre 2004
    Messages : 319
    Points : 83
    Points
    83
    Par défaut
    Citation Envoyé par Arendelle Voir le message
    Le 3000 c'était pour mes tests car en faites je compte utiliser un select pour régler la boucle for comme avec des bornes pour parcourir des années mais c'est vrai que la 3000 c'est beaucoup du coup j'ai réduit le nombre.
    Oui j'ai vu qu'il fallait déclarer le tableau avant mais la je me heurte à la même erreur car je suis passé à un tableau a plusieurs dimensions. Car il doit contenir l'année en 1er puis pour chaques année le montant.
    tiens voici se que j'ai fait:
    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
    30
     public function indexAction()
        {
     
         $table_consommation = new Application_Model_Consommation();
           $montant = array();
             for($i=2014;$i<=2050;$i++){
                 $montant[] = $i;
                 for($j=1;$j<=12;$j++){
                     if($j<=9){
                     $j = '0'.$j;
                     }
                     $select = $table_consommation->select();
                     $select->from('consommation', array('sum(MONTANT_TOTAL) as montant_total'))
                             ->where('DATE_RELEVE like ?', '%'.$i.'-'.$j.'%');
                     $res = $table_consommation->fetchAll($select);
                   //  var_dump($res[0]['montant_total']);
     
                       if($res[0]['montant_total'] != null){  
                       // echo "<td class='cn_td'>"; echo $consommation->montant_total."€";echo "</td>";     
                           //$this->view->montant = $consommation->montant_total;
                           $montant[$i][] = $res[0]['montant_total'];
                       }
     
     
                 }
     
             }
     
             $this->view->montant = $montant;
        }
    Et la vue pour aussi si tu peux m'aider pour l'affichage:
    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
    30
    31
    32
    33
    34
    <div id="depense">
     
      <h1 class='cn_h1' style='margin: 0 10px 10px 10px; padding: 0;'>Dépenses</h1>
     
         <table id='table_depense'>
           <tr>  
               <th class='cn_th'></th>
               <th class='cn_th'>Janvier</th>
               <th class='cn_th'>Fevrier</th>
               <th class='cn_th'>Mars</th>
               <th class='cn_th'>Avril</th>
               <th class='cn_th'>Mai</th>
               <th class='cn_th'>Juin</th>
               <th class='cn_th'>Juillet</th>
               <th class='cn_th'>Aout</th>
               <th class='cn_th'>Septembre</th>
               <th class='cn_th'>Octobre</th>
               <th class='cn_th'>Novembre</th>
               <th class='cn_th'>Decembre</th>
           </tr>
     
           <?php
     
           foreach($this->montant as $annee => $montant_mois) {  ?>
           <tr>
             <td class='cn_td'><?php echo $annee;?></td>
           <?php   
           foreach($montant_mois as  $montant){  ?>
             <td class='cn_td'><?php  echo $montant; ?></td>
           <?php } ?>
           </tr>
           <?php } ?>
         </table>
    </div>
    EDIT: C'est bon j'ai trouvé la solution et ça fonctionne plutot pas mal:
    controller:
    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
    30
    31
    32
     public function indexAction()
        {
     
         $table_consommation = new Application_Model_Consommation();
           $montant = array();
          // $montant[]=array();
             for($i=2014;$i<=2020;$i++){
                // $montant[] = $i;
                 $montant[$i]=array();
                 for($j=1;$j<=12;$j++){
                     if($j<=9){
                     $j = '0'.$j;
                     }
                     $select = $table_consommation->select();
                     $select->from('consommation', array('sum(MONTANT_TOTAL) as montant_total'))
                             ->where('DATE_RELEVE like ?', '%'.$i.'-'.$j.'%');
                     $res = $table_consommation->fetchAll($select);
                   //  var_dump($res[0]['montant_total']);
     
                       if($res[0]['montant_total'] != null){  
                       // echo "<td class='cn_td'>"; echo $consommation->montant_total."€";echo "</td>";     
                           //$this->view->montant = $consommation->montant_total;
                           $montant[$i][] = $res[0]['montant_total'];
                       }
     
     
                 }
     
             }
     
             $this->view->montant = $montant;
        }
    Et la vue:
    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
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    <div id="depense">
     
      <h1 class='cn_h1' style='margin: 0 10px 10px 10px; padding: 0;'>Dépenses</h1>
      <select name="select_annee" id="select_annee">
          <option value="">---</option>
          <?php for($i=2010;$i<=2100;$i+=5){ 
              $fin = $i +5;
              ?>
          <option value="<?php echo $i."-".$fin;?>"><?php echo $i."-".$fin;?></option>
          <?php }?>
      </select>
         <table id='table_depense'>
           <tr>  
               <th class='cn_th'></th>
               <th class='cn_th'>Janvier</th>
               <th class='cn_th'>Fevrier</th>
               <th class='cn_th'>Mars</th>
               <th class='cn_th'>Avril</th>
               <th class='cn_th'>Mai</th>
               <th class='cn_th'>Juin</th>
               <th class='cn_th'>Juillet</th>
               <th class='cn_th'>Aout</th>
               <th class='cn_th'>Septembre</th>
               <th class='cn_th'>Octobre</th>
               <th class='cn_th'>Novembre</th>
               <th class='cn_th'>Decembre</th>
           </tr>
     
           <?php
           $result = count($this->montant); 
           foreach($this->montant as $annee => $montant_mois) {  ?>
                <tr>
                    <td class='cn_td'><?php echo $annee;?></td>
                 <?php if(!empty($montant_mois)){ ?> 
                  <?php foreach($montant_mois as  $montant){  ?>
                        <?php if($montant != null){?>
                        <td class='cn_td'><?php  echo $montant."€"; ?></td>
                        <?php }
                        else {?>
                        <td class='cn_td'><?php  echo "0€"; ?></td>
                        <?php } ?>
                <?php }
                 } else {
                        for($j=1;$j<=12;$j++){ ?>
                            <td class='cn_td'><?php  echo "0€"; ?></td>
                        <?php }
                    } ?>
                </tr>
           <?php } ?>
         </table>
    </div>
    Encore merci pour ton aide!
    J'allais justement te répondre.

    Désolé de mettre du temps mais je suis pas toujours disponible. Désolé.

    Content que tu es trouvé la solution.

    Petit information et avis personnel : évite de mettre les requetes directement dans le controller, met les dans les models et appel les fonction, c'est du MVC ....

  7. #7
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2015
    Messages
    75
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2015
    Messages : 75
    Points : 54
    Points
    54
    Par défaut
    Ne t'inquiète pas je comprends et encore merci pour ton aide! Oui c'est vrai tu as raison c'est un oublie de ma part j'en prend note .

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. aide à faire un tableau sous acces
    Par getin3d dans le forum IHM
    Réponses: 4
    Dernier message: 19/12/2011, 10h12
  2. gestion tableau sous word à l'aide d'une macro
    Par yannick113 dans le forum VBA Word
    Réponses: 14
    Dernier message: 18/04/2010, 22h56
  3. Problème Tableau Sous DW
    Par Lorik dans le forum Balisage (X)HTML et validation W3C
    Réponses: 7
    Dernier message: 04/10/2005, 12h55
  4. Probleme de hauteur de tableau sous netscape
    Par teshub dans le forum Balisage (X)HTML et validation W3C
    Réponses: 2
    Dernier message: 26/08/2005, 17h00
  5. Aide accessible sous JBuilder
    Par Dinytro dans le forum JBuilder
    Réponses: 1
    Dernier message: 12/04/2005, 10h11

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