PHP|Débutant :: Forums

Advertisement

Besoin d'aide ? N'hésitez pas, mais respectez les règles

Vous n'êtes pas identifié(e).

#1 08-02-2012 11:57:28

rick's
Membre
Inscription : 26-04-2010
Messages : 14

Soucis avec un tableau multi dimensionnel

Bonjour à tous,


Je vous explique mon petit souci, je souhaite incrémenter un tableau multidimensionnel, pour ensuite en récupérer les valeurs et en faire la somme par méthode de paiement... Vous y verrez certainement mieux avec un bout de code.

  $sqlPayment = "SELECT Date, Mode, NumIden, Montant FROM merp_payment WHERE estimateId='$estimateId'";
  $reqPayment = mysql_query($sqlPayment) or die("Erreur SQL : ".mysql_error()."<br>Requête : $sqlPayment");
  while ($rowPayment = mysql_fetch_array($reqPayment)) {
    $paymentTab[$rowPayment['Mode']][] = $rowPayment['Montant'];
  }


    foreach($paymentTab AS $paymentMethod => $amount) {
      $paymentInfo=$paymentMethod." - ".array_sum($amount)."<br />";
    }

Mais dans ce cas, il ne me retourne que les paiements du premier mode de paiement rencontré sad


Vous avez une idée?

++

Hors ligne

#2 08-02-2012 13:53:20

Maljuna Kris
Infantimigulo
Lieu : Douarnenez 29100 Breizh Izel
Inscription : 08-05-2009
Messages : 2 453
Site Web

Re : Soucis avec un tableau multi dimensionnel

Saluton,
Pourquoi tu ne regardes pas du côté de GROUP BY avec l'option WITH ROLLUP ?


Gloire à qui n'ayant pas d'idéal sacro-saint,
Se borne à ne pas trop emmerder ses voisins. G. Brassens Don Juan 1976.
Avĉjo MoKo kantas
La chaîne YouTube MoKo Papy

Hors ligne

#3 08-02-2012 14:05:05

rick's
Membre
Inscription : 26-04-2010
Messages : 14

Re : Soucis avec un tableau multi dimensionnel

Parce qu'en fait j'ai besoin de parcourir chaque paiement (j'ai modifié le code avant de le mettre sur le forum). Et je voulais en profiter pour mettre tout ça dans un tableau et que ça m'évite une seconde requête...

Dernière modification par rick's (08-02-2012 14:05:29)

Hors ligne

#4 08-02-2012 14:11:32

Maljuna Kris
Infantimigulo
Lieu : Douarnenez 29100 Breizh Izel
Inscription : 08-05-2009
Messages : 2 453
Site Web

Re : Soucis avec un tableau multi dimensionnel

Alors il te faut imbriquer 2 foreach.
Pour comprendre en détail fait un print_var($paymentTab) et regarde le résultat.


Gloire à qui n'ayant pas d'idéal sacro-saint,
Se borne à ne pas trop emmerder ses voisins. G. Brassens Don Juan 1976.
Avĉjo MoKo kantas
La chaîne YouTube MoKo Papy

Hors ligne

#5 08-02-2012 14:15:12

rick's
Membre
Inscription : 26-04-2010
Messages : 14

Re : Soucis avec un tableau multi dimensionnel

Maljuna Kris a écrit :

Alors il te faut imbriquer 2 foreach.
Pour comprendre en détail fait un print_var($paymentTab) et regarde le résultat.

Ce qui est bizarre, c'est que ma première boucle foreach devrait me sortir tout les moyens de paiements (Cheque, Especes, etc...) à partir du moment ou ils sont compris dans la requête. Hors là, je n'ai qu'une seul méthode qui en ressort...

Le array_sum me permet théoriquement de faire la somme de tout les paiements d'une même méthode (et ça fonctionne, vu que j'arrive à avoir mon bon total de paiement par chèque...), Mais il ne me sors pas les espèces, les financements, etc..

Hors ligne

#6 08-02-2012 14:56:20

Jc
Membre
Lieu : Zillisheim - Alsace
Inscription : 15-04-2010
Messages : 1 629
Site Web

Re : Soucis avec un tableau multi dimensionnel

Bonjour,

Pour que cela fonctionne, il te faut tester à chaque boucle de ton for each le type de mode en cours pour lui appliquer un traitement adéquat. En gros il te faut définir préalablement à ton for each une variable somme pour chaque mode de paiement que tu calcules respectivement dans ton foreach en fonction du mode..

++


POO PHP+Ajax en MVC avec PDO et Bases de données épaisses  : What else?

Hors ligne

#7 08-02-2012 14:59:49

rick's
Membre
Inscription : 26-04-2010
Messages : 14

Re : Soucis avec un tableau multi dimensionnel

Je comprends pas cette nécessité ni vraiment la solution proposé (désolé)...


Normalement si j'ai 3 paiements tels que :
Especes 100
Cheque 120
Cheque 130

Le tableau devrait être compilé de la sorte :

[Espece][0]=100
[Cheque][0]=120
[Cheque][1]=130


non?

Hors ligne

#8 08-02-2012 15:04:54

Jc
Membre
Lieu : Zillisheim - Alsace
Inscription : 15-04-2010
Messages : 1 629
Site Web

Re : Soucis avec un tableau multi dimensionnel

Il y a un truc que je ne comprends pas non plus. Tu souhaites lire et afficher tes infos en appliquant un calcul sur les résultats ou tu souhaites définir des valeurs? car

$paymentTab[$rowPayment['Mode']][] = $rowPayment['Montant'];

représente tout sauf de la lecture d'enregistrements.

Sinon pour répondre à ta question et en suivant la logique de ta requête: non.
Par contre si c'est ce que tu souhaites obtenir, il te faut créer un array d'affectation de valeur indépendamment de ceux que tu utilises pour la lecture.

Dernière modification par Jc (08-02-2012 15:09:05)


POO PHP+Ajax en MVC avec PDO et Bases de données épaisses  : What else?

Hors ligne

#9 08-02-2012 18:29:51

Maljuna Kris
Infantimigulo
Lieu : Douarnenez 29100 Breizh Izel
Inscription : 08-05-2009
Messages : 2 453
Site Web

Re : Soucis avec un tableau multi dimensionnel

Ceci dit, ne comprenant plus où est le problème, j'ai réalisé ce petit script:

<?php
$paymentTab=array();
$paymentTab['Espece'][0]=100;
$paymentTab['Cheque'][0]=120;
$paymentTab['Cheque'][1]=130;
$paymentInfo='';
?><pre><?php print_r($paymentTab); ?></pre><?php
foreach($paymentTab AS $paymentMethod => $amount) {
    $paymentInfo.=$paymentMethod." - ".array_sum($amount)."<br />";
    }
echo $paymentInfo;

et quand je le teste j'obtiens ce résultat :

Array
(
    [Espece] => Array
        (
            [0] => 100
        )

    [Cheque] => Array
        (
            [0] => 120
            [1] => 130
        )

)

Espece - 100
Cheque - 250

Qui semble bien être celui attendu.
Do, kio eraras ?


Gloire à qui n'ayant pas d'idéal sacro-saint,
Se borne à ne pas trop emmerder ses voisins. G. Brassens Don Juan 1976.
Avĉjo MoKo kantas
La chaîne YouTube MoKo Papy

Hors ligne

#10 13-02-2012 19:18:58

rick's
Membre
Inscription : 26-04-2010
Messages : 14

Re : Soucis avec un tableau multi dimensionnel

C'est bon, c'est OP... Je m'en suis sortis smile

Hors ligne

Pied de page des forums