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 :

[PHP 5] afficher le calcul de la somme par ligne d'un tableau


Sujet :

Langage PHP

  1. #1
    Nouveau membre du Club
    Femme Profil pro
    student
    Inscrit en
    Janvier 2019
    Messages
    66
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : student

    Informations forums :
    Inscription : Janvier 2019
    Messages : 66
    Points : 34
    Points
    34
    Par défaut [PHP 5] afficher le calcul de la somme par ligne d'un tableau
    Bonjour,

    bon je reconnais que je suis loin d'être top en php/tableau.

    J'ai récupéré un tableau
    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
    array(2) {
      [4]=>
      array(14) {
        ["Nb_ADRPC"]=>
        string(1) "0"
        ["Nb_ADR0"]=>
        string(1) "1"
    }
      [1]=>
      array(14) {
        ["Nb_ADRPC"]=>
        string(1) "1"
        ["Nb_ADR0"]=>
        string(1) "1"
    }
    ...etc
    J'arrive bien à boucler pour faire la somme des ADR par ligne

    Code PHP : 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
     
     
            //boucle pour la somme par ligne des acronymes
            $sumTotalAcronymes = array();
     
            foreach ($result as $key=>$val) {
                $sumAcronymes = $val["Nb_ADR0"] + $val["Nb_ADRPC"] + $val["Nb_ADRCOMP"] + $val["Nb_ADRVOIE"];
     
    //            var_dump("la somme dans boucle : " . $sumAcronymes); //me rend bien le compte des ADR pour chaque ligne bouclée
     
     
                var_dump($sumAcronymes);
     
                $sumTotalAcronymes[] = $sumAcronymes;
     
            }
     
     
            var_dump($sumTotalAcronymes);
     
     
     
     
     
            // Affichage page
            $this->view->render($response,'arcepAcronym.twig',array(
                "mois" => $mois,
                "annee" => $annee,
                "acronyme" => $acronymDisplay,
                "sqlOperatorSelected" => $_SESSION['select-all-operators'],
                "results" => $result,
                "sumTotalAcronymes" => $sumTotalAcronymes
            ));

    J'arrive pas à faire l'affichage dans ma page :
    il m'affiche le tableau de manière inditique sur chaque ligne ... et en plus il me décale les colonnes


    Dans mon controller j'ai un render qui permet de remplir le tableau qui est bouclé en twig


    Merci d'avance ...

  2. #2
    Nouveau membre du Club
    Femme Profil pro
    student
    Inscrit en
    Janvier 2019
    Messages
    66
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : student

    Informations forums :
    Inscription : Janvier 2019
    Messages : 66
    Points : 34
    Points
    34
    Par défaut LA solution
    La solution si ça peut aider

    dans le controller (bon y a pas tout, mais le plus important pour la problématique)
    Code PHP : 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
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
     
    //if pour gérer la requête pour tous les acronymes
            if ($acronyme == "tous"){
                $result = $this->modelData->getListForAllAcronym($annee, $mois, $_SESSION['sqlOperator']);
            }
            else {
                //sinon on fait la requêt pour 1 acronyme
                //on fait la requête SQL
                $result = $this->modelData->getListForSelectedAcronym($annee, $mois, $_SESSION['sqlOperator'], $acronyme);
            }
    //        var_dump($result); //on récupère bien le tableau de la réponse sql
     
     
            //Somme des acronymes par ligne
            $sumTotalAcronymes = array();
     
            foreach ($result as $key=>$val) {
                $sumAcronymes = $val["Nb_ADR0"] + $val["Nb_ADRPC"] + $val["Nb_ADRCOMP"] + $val["Nb_ADRVOIE"];
     
    //            var_dump("la somme dans boucle : " . $sumAcronymes); //me rend bien le compte des ADR pour chaque ligne bouclée
    //            var_dump($sumAcronymes);
     
                $sumTotalAcronymes[] += $sumAcronymes;
            }
    //        var_dump("le tableau : ");
    //        var_dump($sumTotalAcronymes);
     
     
     
            // Nombre total d'acronyme de la colonne nombre d'acronymes (dans pied du tableau)
            $sumTotalAllAcronymes = 0;
            foreach ($sumTotalAcronymes as $ligne) {
                $sumTotalAllAcronymes += $ligne;
            }
    //        var_dump("le tableau pied de page somme totale : ");
    //        var_dump($sumTotalAllAcronymes);
     
     
            // Somme par acronyme en pied de tableau
            $sumTotalByAcronymes = array();
            foreach ($result as $acronymeTotal){
                $sumTotalByAcronymes[sumADRVOIE] += $acronymeTotal["Nb_ADRVOIE"];
                $sumTotalByAcronymes[sumADRCOMP] += $acronymeTotal["Nb_ADRCOMP"];
                $sumTotalByAcronymes[sumADRPC] += $acronymeTotal["Nb_ADRPC"];
                $sumTotalByAcronymes[sumADR0] += $acronymeTotal["Nb_ADR0"];
            }
    //        var_dump("le tableau pour pied de page : ");
    //        var_dump($sumTotalByAcronymes);
     
     
     
            // Affichage page
            $this->view->render($response,'arcepAcronym.twig',array(
                "mois" => $mois,
                "annee" => $annee,
                "acronyme" => $acronymDisplay,
                "sqlOperatorSelected" => $_SESSION['select-all-operators'],
                "results" => $result,
                "sumTotalAcronymes" => $sumTotalAcronymes,
                "sumTotalAllAcronymes" => $sumTotalAllAcronymes,
                "sumTotalByAcronymes" => $sumTotalByAcronymes
            ));
     
            //envoie de la réponse
            return $response;
     
        }


    le fichier twig (idem seulement le tableau)
    Code HTML : 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
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
     
    <div class="row">
            <table class="striped sortable centered" id="table-arcep">
                <thead>
                    <tr>
                        <td>Opérateurs</td>
                        <td>Date de validation</td>
                        <td>Famille d'offre</td>
                        <td>Zone SI</td>
                        <td>Référence externe</td>
                        <td>Identifiant externe</td>
                        <td>Nom gestionnaire</td>
                        <td>Référence chrono</td>
                        <td>Date de Mise à Jour</td>
                        <td>Nombre d'Acronymes</td>
                        <td>ADR0</td>
                        <td>ADRPC</td>
                        <td>ADRVOIE</td>
                        <td>ADRCOMP</td>
                    </tr>
                </thead>
     
                <tbody>
                {% for key, result in results %}
                    <tr>
                        <td>{{ result.DENOMINATION_1 }}</td>
                        <td>{{ result.DATEVALIDATIONFO }}</td>
                        <td>{{ result.FAMILLEOFFRE }}</td>
                        <td>{{ result.ZONESI }}</td>
                        <td>{{ result.REFEXTERNE_1 }}</td>
                        <td>{{ result.IDEXTERNE_1 }}</td>
                        <td>{{ result.nom_gest }}</td>
                        <td>{{ result.ref_chrono }}</td>
                        <td>{{ result.DATE_MAJ }}</td>
                        <td>{{ sumTotalAcronymes[key] }}</td>
                        <td>{{ result.Nb_ADR0 }}</td>
                        <td>{{ result.Nb_ADRPC }}</td>
                        <td>{{ result.Nb_ADRVOIE }}</td>
                        <td>{{ result.Nb_ADRCOMP }}</td>
                    </tr>
     
                {% else %}
                    <tr>
                        <td colspan="12">Rien à afficher</td>
                    </tr>
                {% endfor %}
                </tbody>
     
                <thead>
                <tr class="grayBackground">
                    <td colspan="9">Total</td>
                    <td>{{ sumTotalAllAcronymes }}</td>
                    <td>{{ sumTotalByAcronymes.sumADR0 }}</td>
                    <td>{{ sumTotalByAcronymes.sumADRPC }}</td>
                    <td>{{ sumTotalByAcronymes.sumADRVOIE }}</td>
                    <td>{{ sumTotalByAcronymes.sumADRCOMP }}</td>
                </tr>
                </thead>
     
            </table>
        </div>

    le résultat :
    Nom : l'affichage .png
Affichages : 550
Taille : 5,7 Ko

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

Discussions similaires

  1. Réponses: 3
    Dernier message: 14/09/2018, 20h11
  2. [XL-2003] Somme des lignes d'un tableau
    Par Rrrroh dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 23/06/2010, 17h29
  3. Afficher une liste, avec 2 résultats par ligne
    Par toutoune60 dans le forum JSF
    Réponses: 5
    Dernier message: 12/02/2007, 15h49
  4. Requête qui fait une somme par ligne
    Par snoopy69 dans le forum Requêtes et SQL.
    Réponses: 1
    Dernier message: 10/08/2006, 08h30
  5. somme par lignes
    Par thauvinl dans le forum Langage SQL
    Réponses: 1
    Dernier message: 14/10/2005, 11h25

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