Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Nie kapuje foreach'a, ... a może inny sposób
kapitan kloss
post 30.05.2005, 10:28:54
Post #1





Grupa: Zarejestrowani
Postów: 107
Pomógł: 0
Dołączył: 18.11.2004

Ostrzeżenie: (0%)
-----


Robie sklep internetowy i chciałem wrzucać wszystkie kupowane przedmioty do koszyka w następujący sposób:
  1. <?php
  2.  
  3. $produkt=$_GET['prod']; // pobieram id produktu
  4. if (isset($_SESSION['koszyk'][$produkt])) { // jesli produkt jest w koszyku
  5.   $ilosc=$_SESSION['koszyk'][$produkt]['ilosc']; // sprawdzam ilosc
  6.   $_SESSION['koszyk'][$produkt]['ilosc']=$ilosc+1; // dodaj jeszcze jeden
  7. } else { // jesli produktu nie ma w koszyku
  8.   $_SESSION['koszyk'][$produkt]['ilosc']=1; // dodaj produkt w ilosci 1 szt.
  9. }
  10.  
  11. ?>


Teraz mam dwa pytania:
1. Jak wypisac w koszyku wszystkie wrzucone tam produkty?
2. Jak je np. sumowac?

Probowalem z foreach ale kompletnie poleglem. Nie moge przebrac przez operacje zapisane w sesji.
Dzieki za pomoc

Ten post edytował kapitan kloss 30.05.2005, 10:29:58


--------------------
Apache + php 5 + PostgreSQL (Mac OS X)
Go to the top of the page
+Quote Post
kszychu
post 30.05.2005, 10:34:41
Post #2





Grupa: Przyjaciele php.pl
Postów: 2 712
Pomógł: 23
Dołączył: 27.10.2003
Skąd: z kontowni

Ostrzeżenie: (0%)
-----


  1. <?php
  2. $razem_produktow = 0;
  3. foreach($_SESSION['koszyk'] as $id_produktu => $produkt) {
  4.  // wypisanie
  5.  echo $produkty[$id_produktu].&#092;"<br>\";
  6.  // i sumowanie
  7.  $razem_produktow += $produkt['ilosc'];
  8. }
  9. echo &#092;"Wszystkich produktów: {$razem_produktow}\";
  10. ?>


--------------------
"Coś się kończy, coś się zaczyna." Andrzej Sapkowski
Go to the top of the page
+Quote Post
kapitan kloss
post 30.05.2005, 10:41:20
Post #3





Grupa: Zarejestrowani
Postów: 107
Pomógł: 0
Dołączył: 18.11.2004

Ostrzeżenie: (0%)
-----


Suuper. Tylko z wypisywaniem sa kłopoty bo
  1. <?php
  2. echo $produkt[$id_produktu].&#092;"<br>\"
  3. ?>

wywala blad o offsecie. Pewnie dlatego, ze jeden tylko produkt o wiekszej ilosci jest w koszyku. Tak czy siak tym sposobem nie wyswietla zadnych produktow w koszyku - jedynie je ladnie zlicza.

Ten post edytował kapitan kloss 30.05.2005, 10:43:16


--------------------
Apache + php 5 + PostgreSQL (Mac OS X)
Go to the top of the page
+Quote Post
kszychu
post 30.05.2005, 10:43:48
Post #4





Grupa: Przyjaciele php.pl
Postów: 2 712
Pomógł: 23
Dołączył: 27.10.2003
Skąd: z kontowni

Ostrzeżenie: (0%)
-----


Tablicę $produkty podałem jako przykład. Nie wiem jak przechowujesz u siebie nazwy produktów. Zamiast tego możesz sobie wyświetlić same id produktów. Wtedy linia piąta będzie miała postać:
  1. <?php
  2. echo $id_produktu.&#092;"<br>\";
  3. ?>


--------------------
"Coś się kończy, coś się zaczyna." Andrzej Sapkowski
Go to the top of the page
+Quote Post
kapitan kloss
post 30.05.2005, 18:50:54
Post #5





Grupa: Zarejestrowani
Postów: 107
Pomógł: 0
Dołączył: 18.11.2004

Ostrzeżenie: (0%)
-----


A teraz kolejny problem: Skrypt zlicza wartosc calego koszyka, ale tylko kiedy dodaje inne produkty. Podczas dodawania kolejnej sztuki produktu bedacego juz w koszyku jego wartosc nie zmienia sie. Pomozcie.

  1. <?php
  2. $razem_produktow = 0;
  3. $cena_ogolna = 0;
  4.  
  5. if (isset ($_SESSION['koszyk'])) {
  6. foreach($_SESSION['koszyk'] as $id_produktu => $produkt) {
  7. $wyswietl_produkty = mysql_query (&#092;"SELECT nazwa, cena FROM produkt WHERE id='$id_produktu'\");
  8. $prod=mysql_fetch_assoc($wyswietl_produkty);
  9. print &#092;"$prod[nazwa]\".\" $produkt[ilosc] szt.\".\" - w cenie: $prod[cena] PLN\".\"<br>\";
  10. $razem_produktow += $produkt['ilosc'];
  11. $cena_ogolna += $prod['cena']; // <= TUTAJ COS ZLE CHYBA NAPISALEM
  12. }
  13. }
  14. print &#092;"W koszyku: {$razem_produktow} szt. wartosc: $cena_ogolna\";
  15. ?>


--------------------
Apache + php 5 + PostgreSQL (Mac OS X)
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 2.07.2025 - 17:23