parcours de résultats et groupement

parcours de résultats et groupement - PHP - Programmation

Marsh Posté le 28-07-2008 à 11:13:45    

Bonjour.
 
J'effectue une requête qui au final est stocké dans un tableau de tableau.
 

Code :
  1. Array ( [0] => Array ( [TYPEPRODUIT1] => Santé [PANTTC1] => 3223 ) [1] => Array ( [TYPEPRODUIT1] => Santé [PANTTC1] => 232,  [2] => Array ( [TYPEPRODUIT1] => Obseq [PANTTC1] => 23 ) )


 
La logique est la (d'autres champs sont récupérés)
 
J'aimerais pouvoir compter le nombre d'occurence des champs  TYPEPRODUIT (allant de TYPEPRODUIT1 à TYPEPRODUIT10) et ajouter leur PANTTC si le TYPEPRODUIT est identique.
 
Dans notre cas cela serait.
 
2 santé avec panttc = 3223 + 232
1 obseq avec panttc = 23
 
Vous avez des idées?
 
Merci bien.
 
 

Reply

Marsh Posté le 28-07-2008 à 11:13:45   

Reply

Marsh Posté le 28-07-2008 à 11:29:36    

Tu parcours ton tableau
Tu stockes tes résultats dans un deuxième tableau $somme avec comme clé ton TYPEPRODUIT ($somme[$key] = $tableau[$i]['PANTTCX'])
tu boucles


---------------
Feedback : http://forum.hardware.fr/hfr/Achat [...] 2666_1.htm
Reply

Marsh Posté le 28-07-2008 à 11:50:33    

Merci.
Je parcours mon tableau comme ceci.
 

Code :
  1. while (list($key, $val) = each($tab_infosproduits[$i])) {
  2.             echo "$key => $val\n";
  3.             }


 
Je vois par contre pas bien comment utilisé le tableau $somme.
 
$somme['nomproduit'] = $tableau[$i]['PANTTC1'];


Message édité par masseur le 28-07-2008 à 11:51:24
Reply

Marsh Posté le 28-07-2008 à 12:02:42    

Tu créés un tableau $somme dans lequel tu stockes tes résultats...
A la place de while, utilise foreach :

 
Code :
  1. foreach($tab_infosproduits as $key => $value)
  2. {
  3. $typeproduit = $value['TYPEPRODUIT1']; //il faut trouver une solution pour que ce la soit TYPEPRODUIT1 ou TYPEPRODUIT2 ou ...
  4. $panttc = $value['PANTTC1']; //il faut trouver une solution pour que ce la soit PANTTC1 ou PANTTC2 ou ...
  5. $somme[$typeproduit] += $panttc; //eventullement prévoir le cas ou $somme[$typeproduit] n'existe pas
  6. }

Message cité 1 fois
Message édité par babasss le 28-07-2008 à 12:03:27

---------------
Feedback : http://forum.hardware.fr/hfr/Achat [...] 2666_1.htm
Reply

Marsh Posté le 28-07-2008 à 12:53:55    

babasss a écrit :

Tu créés un tableau $somme dans lequel tu stockes tes résultats...
A la place de while, utilise foreach :
 

Code :
  1. foreach($tab_infosproduits as $key => $value)
  2. {
  3. $typeproduit = $value['TYPEPRODUIT1']; //il faut trouver une solution pour que ce la soit TYPEPRODUIT1 ou TYPEPRODUIT2 ou ...
  4. $panttc = $value['PANTTC1']; //il faut trouver une solution pour que ce la soit PANTTC1 ou PANTTC2 ou ...
  5. $somme[$typeproduit] += $panttc; //eventullement prévoir le cas ou $somme[$typeproduit] n'existe pas
  6. }



 
Ouais ok, jusque la j'avais compris.
Le problème était justement sur les remarques que tu viens de faire en commentaires de ton code.
Enfin l'idée est la, je vais reussir à m'en sortir du coup.
 
Merci :)


Message édité par masseur le 28-07-2008 à 12:54:19
Reply

Marsh Posté le 28-07-2008 à 23:42:53    

hello,
Et pourquoi pas un code de ce style :
 

Code :
  1. foreach($tab_infosproduits as $key => $value)
  2. {
  3. for ($a = 1; $a < 11; $a++)
  4. {
  5.  $typeproduit = $value['TYPEPRODUIT'.$a];
  6.  $panttc = $value['PANTTC'.$a];
  7.  $somme[$typeproduit] += $panttc; //eventullement prévoir le cas ou $somme[$typeproduit] n'existe pas
  8. }
  9. }


---------------
NewsletTux - outil de mailing list en PHP MySQL
Reply

Marsh Posté le 29-07-2008 à 10:24:22    

Oui merci NewsletTux :)

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed