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

CodeIgniter PHP Discussion :

Faire des sous-totaux dans une table


Sujet :

CodeIgniter PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Décembre 2007
    Messages
    65
    Détails du profil
    Informations forums :
    Inscription : Décembre 2007
    Messages : 65
    Par défaut Faire des sous-totaux dans une table
    Bonjour,
    Sur un site développé en PHP (CodeIgniter) de entes en ligne de menus il y a un tableau répertoriant toutes les commandes passées par le client.
    Le client peut commander un menu complet (plat + boisson + dessert) et ajouter des extras.
    Le tableau affiche une ligne par item
    date - boisson - 0€ (puisque faisant partie du menu)
    date - dessert - 0€ (idem)
    date - plat - prix du menu
    date - supplément - prix du supplément

    Je souhaite ajouter une ligne récapitulative pour chaque date avec le montant total payé. Il faudrait donc qu'il calcule le total des lignes précédentes ayant la même date et qu'il affiche
    date - rien - prix total payé
    Je n'y arrive pas, alors si quelqu'un pouvait me donner un coup de pouce, je lui serais très reconnaissante
    Voici le code actuel
    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
     <table class="table table-bordered">
                                  <tr>
                                      <th>Id</th>
                                      <th><?php echo $this->lang->line('Productname') ; ?></th>
                                      <th><?php echo $this->lang->line('Orderdate') ; ?></th>
                                      <th><?php echo $this->lang->line('Quantity') ; ?></th>
                                      <th><?php echo $this->lang->line('Price') ; ?></th>
                                      <th>Total</th>
                                  </tr>
                                  <?php
                                    $i=1;
    								$total=0;
                                    $uid=$this->session->userdata('uid');
                                    //$join = array('indochine_products_options', 'indochine_products_options.product_option_id=orderCreatetime.options');
     
                                    /*$query="SELECT * FROM indochine_order io left join indochine_products_options ipo on o. WHERE user_id = ". $userid ." AND DATE_FORMAT(order_date, \"%Y-%m-%d\") = '" . date("Y-m-d") . "' AND id_commande = 0";
                                    $allorder = $this->db->query($query)->row();*/
     
                                    $this->db->join('indochine_products_options','indochine_products_options.product_option_id=indochine_order.options');
                                    $allorder=$this->db->order_by('orderCreatetime', 'DESC')->get_where('indochine_order' , array('user_id' => $uid))->result_array();
                                   foreach($allorder as $key => $value){ ?>
                                  	  <tr>
                                      <td style="font-size: 18px;"> - </td>
                                      <td style="font-size: 18px;"> - </td>
                                      <td style="font-size: 18px;"><?=$value['orderCreatetime'];?></td>
                                      <td style="font-size: 18px;"><?=($total['product_option_price'] + $value['product_option_extra']);?>&euro;</td>
                                        <td style="font-size: 18px;"><?=$value['product_option_price'] + $value['product_option_extra'];?>&euro;</td>
     
     
                                <?php }?>
     
                                      <!-- <td><a href=""><i class="glyphicon glyphicon-remove" style="color:#f00"></i></a></td> -->
                                  </tr>
     
    							  <tr>
                                      <td style="font-size: 18px;"><?=$i++;?></td>
                                      <td style="font-size: 18px;"><?=$value['proname'];?></td>
                                      <td style="font-size: 18px;"><?=$value['orderCreatetime'];?></td>
                                      <td style="font-size: 18px;"><?=$value['qnty'];?></td>
                                      <?php if ( ($value['product_option_price'] + $value['product_option_extra']) > 0 ) { ?>
                                        <td style="font-size: 18px;"><?=($value['product_option_price'] + $value['product_option_extra'])/$value['qnty'];?>&euro;</td>
                                        <td style="font-size: 18px;"><?=$value['product_option_price'] + $value['product_option_extra'];?>&euro;</td>
                                <?php }else{?> 
                                        <td> - </td>
                                        <td> - </td>
                                <?php }?>
     
                                      <!-- <td><a href=""><i class="glyphicon glyphicon-remove" style="color:#f00"></i></a></td> -->
                                  </tr>
                                  <?php } ?>
                                </table>
    Et serait-ce possible que seules les lignes total soient visibles, les autres seulement quand on clique sur la ligne du total ?

    merci d'avance !!!

  2. #2
    Membre Expert
    Avatar de Dendrite
    Femme Profil pro
    Développeuse informatique
    Inscrit en
    Juin 2008
    Messages
    2 129
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 59
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeuse informatique
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Juin 2008
    Messages : 2 129
    Billets dans le blog
    8
    Par défaut
    Bonjour !
    c'est order_date ou Orderdate ?
    que donne cette requête dans ton PHPmyadmin ?
    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    SELECT Productname, Orderdate, Quantity, Price
    FROM indochine_order io 
    left join indochine_products_options ipo on ipo.product_option_id=io.options
    WHERE user_id = 15 AND DATE_FORMAT(Orderdate, "%Y-%m-%d") = curdate() AND id_commande = 0;
    PDO, une soupe et au lit !
    Partir de la fin est un bon moyen de retrouver son chemin. Bibi - 2020

  3. #3
    Membre averti
    Inscrit en
    Décembre 2007
    Messages
    65
    Détails du profil
    Informations forums :
    Inscription : Décembre 2007
    Messages : 65
    Par défaut
    merci pour ta réponse. Peux pas te dire pourquoi ce n'est pas moi qui ai créé le bazar !

  4. #4
    Membre averti
    Inscrit en
    Décembre 2007
    Messages
    65
    Détails du profil
    Informations forums :
    Inscription : Décembre 2007
    Messages : 65
    Par défaut
    ca devient grave ! n'ai-je pas lu tout à l'heure que tu demandais pourquoi c'était un orderdate et non un datetime ?? ce à quoi s'adressait ma réponse.
    je vais tester ça dans la bdd et te tiens au courant
    merci !!

  5. #5
    Membre averti
    Inscrit en
    Décembre 2007
    Messages
    65
    Détails du profil
    Informations forums :
    Inscription : Décembre 2007
    Messages : 65
    Par défaut
    Bon, ça me dit
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    Erreur
    Analyse statique :
     
    1 erreurs trouvées lors de l'analyse.
     
    Mot clé non reconnu. (near "io" at position 69)
    Requête SQL :  Documentation
     
    SELECT Productname, Orderdate, Quantity, Price FROM indochine_order io left join indochine_products_options ipo on ipo.product_option_id=io.options WHERE user_id = 15 AND DATE_FORMAT(Orderdate, "%Y-%m-%d") = curdate() AND id_commande = 0
     
    MySQL a répondu : Documentation
     
    #1054 - Unknown column 'Productname' in 'field list'

  6. #6
    Membre averti
    Inscrit en
    Décembre 2007
    Messages
    65
    Détails du profil
    Informations forums :
    Inscription : Décembre 2007
    Messages : 65
    Par défaut
    Dans la table il y a un champ orderCreatetime et un champ order_date . Par contre je vois qu'il y a un champ id_commande. Chaque ligne d'item de menu a le même id_commande. Ca peut servir ?

  7. #7
    Membre averti
    Inscrit en
    Décembre 2007
    Messages
    65
    Détails du profil
    Informations forums :
    Inscription : Décembre 2007
    Messages : 65
    Par défaut
    je vais faire ça mais encore une petite question : je dois changer le code de la table pour faire une table accordéon. Pour ça, la ligne de total doit être au-dessus de la liste de produits. je suppose qu'alors je dois mettre ce qui est en-dessous de // ligne total au-dessus du foreach ?

    merci pour ton aide précieuse !

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

Discussions similaires

  1. [XL-2003] Sous Totaux dans une liste grace à des "Inputbox".
    Par graphikris dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 09/05/2013, 17h37
  2. Réponses: 7
    Dernier message: 08/10/2012, 15h46
  3. [AC-2002] Comment calculer des sous-totaux dans une requete croisee
    Par babinou dans le forum Requêtes et SQL.
    Réponses: 2
    Dernier message: 19/08/2009, 09h43
  4. Ne pas faire apparaitre les titres des sous figures dans la table des figures?
    Par Contact2012 dans le forum Tableaux - Graphiques - Images - Flottants
    Réponses: 7
    Dernier message: 27/04/2009, 17h39
  5. [VRML] Faire des trous ronds dans une table.
    Par yoyo910 dans le forum Développement 2D, 3D et Jeux
    Réponses: 2
    Dernier message: 22/03/2006, 17h56

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