Comment compter le nombre d'article dans une boucle
Résolu53pierre Messages postés 32 Date d'inscription Statut Membre Dernière intervention -
bonjour
je récupère le contenu d'une variable que je passe dans un decode pour en sous tirer son contenu
je parviens a trouver le nombre d'article pour l'articles 111, ainsi que pour l'article 222 et le 333
Mais je souhaiterais également connaître le nombre d'article pour tous les autres
mais j'ai aussi des autres articles tel que a14 , b 25 , c58 ,e22 que je souhaite connaître le total de ces 4 articles (mais dans mon stock j'ai plus de 200 articles
par exemple si j'ai 3 articles dans a14
6 articles dans b25
8 articles dans c58
4 articles dans a22
ect...
que cela affiche total de 21
+ bien entendu la quantité des article spéciaux 111 ;222 ,333
pour obtenir le total absolu
$datanom = $stock; $decodenom = json_decode($datanom); $mailData1 = ""; $mailData2 = ""; $mailData3 = ""; $mailData4 = ""; $test = ""; $test1 = ""; $test2 = ""; $test3 = ""; $counts = []; foreach ($decodenom as $curr_elementnom) { $fieldName = $curr_elementnom->nom; $fieldQty = $curr_elementnom->quantite; $fieldPrice = $curr_elementnom->prix; $fieldimg = $curr_elementnom->url; if ( $fieldQty != 0 ) { if ($fieldPrice != 0) { if ($fieldName == 111) { $input1 = '<div style ="border:solid;"> <div style ="float: left;width: 50%;"> voici le nom</div > <div style =""> ' . $fieldName . '</div> <div style ="float: left;width: 50%;"> qanditée</div > <div style =""> ' . $fieldQty . '</div > </div><br><br><br>'; $test=$fieldQty; $mailData1 .= $input1; @$counts[$fieldName]++; } elseif ($fieldName == 222) { $input2 = '<div style ="border:solid;"> <div style ="float: left;width: 50%;"> voici le nom</div > <div style =""> ' . $fieldName . '</div> <div style ="float: left;width: 50%;"> qanditée</div > <div style =""> ' . $fieldQty . '</div > </div><br><br><br>'; $test1=$fieldQty; $mailData2 .= $input2; @$counts[$fieldName]++; } elseif ($fieldName == 333) { $input3 = '<div style ="border:solid;"> <div style ="float: left;width: 50%;"> qanditée</div > <div style =""> ' . $fieldQty . '</div > <div style ="float: left;width: 50%;"> voici le nom</div > <div style =""> ' . $fieldName . '</div> </div><br><br><br>'; $test2=$fieldQty; $mailData3 .= $input3; @$counts[$fieldName]++; } else { $input4 ='<div style ="border:solid;"> <div style ="float: left;width: 50%;"> qanditée</div > <div style =""> ' . $fieldQty . '</div > <div style ="float: left;width: 50%;"> voici le nom</div > <div style =""> ' . $fieldName . '</div> </div><br><br><br>'; $test3=$fieldQty; $mailData4 .= $input4; @$counts['other']++; } } } } var_dump($test) ; var_dump($test1); var_dump($test2); var_dump($test3);
- Comment compter le nombre d'article dans une boucle
- Nombre de jours entre deux dates excel - Guide
- Afficher le 0 devant un nombre dans excel - Guide
- Comment créer un compte google - Guide
- Comment savoir qui regarde mon compte facebook - Guide
- Comment créer un compte gmail - Guide
3 réponses
oui bien sur voila
[{"nom":0001,"prix":4.75,"quantite":"15"},{"nom":0002,"prix":4.75,"quantite":"5"},{"nom":003,"prix":4.75,"quantite":"8"},{"nom":111,"prix":77,"quantite":"3"},{"nom":222,"prix":79,"quantite":"4"},{"nom":333,"prix":92,"quantite":"5"}]
dans ce cas je souhaiterais avoir comme sortie
3 pour les 111
4 pour les 222
5 pour les 333
et 28 pour les autres
Bonjour,
Il ne faut pas créer ( à la main...) autant de variables que tu as de produits... sinon ton code ne sera jamais dynamique..
Il faut passer par une variable de type "array" à 2 dimensions..
Un truc du genre
$total = 0; $arrP = []; foreach ($decodenom as $curr_elementnom) { $fieldName = $curr_elementnom->nom; $fieldQty = $curr_elementnom->quantite; $fieldPrice = $curr_elementnom->prix; $fieldimg = $curr_elementnom->url; $arrP[$fieldName] = $fieldQty; $total += floatVal($fieldQty); // le reste de ton code .. } echo "<br>Total :" . $total; echo "<br> Quantité par produit :" . PHP_EOL; var_dump($arrP);
idem pour tes $input1 $input2 .... si tu dois le coder à la main.. tu n'es pas rendu..
Si ton but est d'avoir un code html alterné, il suffit d'utiliser un modulo pour appliquer soit l'un soit l'autre
on va essayer de se comprendre alors ...
j'ai donc un stock d'article certains sont vendu a l'unité d'autres en pack
ceux qui sont vendus en pack sont les références 111 ,222 et 333
et tout le reste du stock ce sont des articles unitaires
le tout est contenu dans une variable stock
je souhaite a présent compter les articles présent dans cette variable stock
Par exemple si j'ai
3 packs de 111
4 packs de 222
5 packs de 333
et que pour tous les autres articles j'ai 587 articles toutes références confondues
j'aimerais avoir en sortie
il y a 3 packs de 111
4 packs de 222
5 packs de 333
et 587 articles qui ne sont ni des 111 , ni des 222 , ni des 333
car par la suite je souhaiterais effectuer des calculs
car dans les packs il y a des articles par exemple celui de 111 possède 25 articles , celui de 222 possède 35 articles et celui de 333 en possède 44