Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Nie kapuje foreach'a
Forum PHP.pl > Forum > PHP
kapitan kloss
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
kszychu
  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. ?>
kapitan kloss
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.
kszychu
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. ?>
kapitan kloss
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. ?>
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.