ugrás a tartalomhoz

Változók kiolvasása és kezelése

Individual · 2011. Aug. 26. (P), 15.12
Üdvözletem!

Funkcionális környezet: Kosár kezelés
Korsárba rakáskor a termék id elküldésre kerül és az id-hoz tartozó adatok (termék neve, egységár, darab) megjelenítésre kerülnek.

A darab megadásával frissül a sorokhoz tartozó végösszeg (darab*egységár).

(A teljes végösszeg számítás már kívül helyezkedik el a foreaches listázó után.)

Kérdés:
Változó számú sorok és változó összegű végösszeget, hogyan érek el összeadás céljából.

Az elképzelésem:
  1. $all_summ = array ($sum = $termek[$id]["termek_webshop_ar"]*$db)      
  2. // Amit lekérdezéskor kapok egy sorra azt eltárolom tömbben.  
  3.   
  4.   
  5. // Innentől a listageneráláson kívül vagyok.  
  6. $array = count($all_summ);  
  7.   
  8. $tmb$array;  
  9. $summa=0;  
  10. foreach($tmb as $e)  
  11. {  
  12.    $summa=$summa+$e;  
  13. }  
  14. print ".$summa;  
Így hibát kapok a foreach sorára

Esetleg a tömbre alkalmazzak implode-ot?
Rossz a gondolatmenet? Vagy mit hagyok ki?

A segítséget előre köszönöm.
 
1

Huha

Poetro · 2011. Aug. 26. (P), 15.23
A $array változód milyen célt szolgál? Mert jelen esetben az csak az elemek számát tárolja, semmi mást. És miért csinálsz egy $tmp változót? A $all_summ célja is kérdéses, mivel abba pedig csak egy értéket pakolsz bele.

Valami ilyesmit képzelnék én el:
  1. <?php  
  2. // Ami a termékek ID-it tartalmazza.  
  3. $idk = array(100, 102, 103);   
  4. // A termékek darabszámát tartalmazza a kulcs pedig a termék ID-je.  
  5. $darabszamok = array(100 => 1, 102 => 2, 103 => 1);  
  6. // Betöltjük a termékeket.  
  7. $termekek = termekek_load($idk);  
  8.   
  9. $summa = 0;  
  10. foreach ($termekek as $termek) {  
  11.   $summa += $termek['termek_webshop_ar'] * $darabszamok[$termek['id']];  
  12. }  
  13. print $summa;  
  14. ?>  
2

Lehet hogy Én értelmezem

Individual · 2011. Aug. 26. (P), 16.01
Lehet hogy Én értelmezem rosszul, de ez nekem úgy tűnik mintha az adott termék és darabszám összegére vonatkozna.

Lehet Én tettem fel rosszul a kérdést.

Szóval mondjuk így néz ki:

Termék neveTermék áraTermék dbÖsszesen
Kalapács100 Ft2200 Ft
Csavarhúzó100 Ft4400 Ft
Összesen: 600 Ft


Nos, és nekem az "összesen: 600 Ft" értékszámítás hiányzik.
3

Lásd előbb

Poetro · 2011. Aug. 26. (P), 16.20
A fenti számítás pont ezt a 600-as értéket számítja ki, ha egyesével is szükséged van rá, akkor:
  1. <?php  
  2. // Ami a termékek ID-it tartalmazza.  
  3. $idk = array(100, 102, 103);   
  4. // A termékek darabszámát tartalmazza a kulcs pedig a termék ID-je.  
  5. $darabszamok = array(100 => 1, 102 => 2, 103 => 1);  
  6. // Betöltjük a termékeket.  
  7. $termekek = termekek_load($idk);  
  8.   
  9. $summa = 0;  
  10. foreach ($termekek as $termek) {  
  11.   // Kiszámítjuk a termék árát a darabszámmal szorozva.  
  12.   $termek['szumma'] = $termek['termek_webshop_ar'] * $darabszamok[$termek['id']];  
  13.   // Kiszámítjuk a végösszeget.  
  14.   $summa += $termek['szumma'];  
  15. }  
  16. print $summa;  
  17. ?>  
5

Sikerült. Köszönöm az

Individual · 2011. Aug. 26. (P), 17.13
Sikerült.

Köszönöm az instrukciókat Poetro! :)

Végül, ennyi az egész:
  1. $summa = 0;  
  2. foreach ($_SESSION['kosar'as $id=>$db) {  
  3.     $summa += $termek[$id]["termek_webshop_ar"]*$db;  
  4. }    
  5. print $summa;  
4

Ja

TeeCee · 2011. Aug. 26. (P), 16.20
Ja, Te értelmezed rosszul :D