PHP - Koszyk Na Zakupy dla Sklepu Internetowego
| DZIAŁANIE: |
Działanie :![]() ![]() |
Kod:
Plik
159towary.php :

Plik
159koszyk.php :

Ewentualne Objaśnienia:
No i mamy gotowy przykład prostego koszyka na zakupy. Jest to sam koszyk - nie pisałem już formularza potwierdzenia zamówienia itd itd - to proste. Tak samo dane tzn towary oraz ich ceny umieściłem w tablicach - poprawnie oczywiście będziemy korzystać z bazy danych.
Plik 159towary.php :
- rozpoczynamy sesje, jeśli jeszcze sesja koszyk nie istnieje - nadajemy jej
wartość tablicy - czyli tablica reprezentująca pusty koszyk zakupów
- jeśli istnieje zmienna $_GET['kup'] - przekazująca numer danego towaru -
dodajemy do koszyka czyli do tablicy sesji $_SESSION['koszyk'][] - czyli nie
określamy indeksu tablicy tak więc do pierwszego wolnego elementu numer towaru
jaki dodaliśmy do koszyka. Funkcją header wracamy do koszyka - ten trik już
znacie pamiętacie - gubimy łańcuch zapytania, aby odświeżanie zawartości nie
powodowało ciągłego dodawania produktów do koszyka
- aby wyświetlić ile już użytkownik towarów zakupił korzystamy ze znanej już Wam
funkcji count od tablicy $_SESSION['koszyk']
- deklaracja tablic z towarami oraz cenami jest myślę banalna
- następnie w pętli, która oczywista powtarza się tyle razy ile jest towarów
zadeklarowanych w tablicy $towary - wyświetlamy nazwy towaru oraz ich cenę -
tutaj pojawia się nowa funkcja number_format - formatuje odpowiednio
liczbę - tutaj aby wyświetlić ceny z dwiema cyframi po separatorze dziesiętnym.
Dokładniejszy opis tej funkcji :
Zwraca sformatowaną liczbę liczba według argumentów. Przyjmuje jeden, dwa
lub cztery argumenty.
- Jeśli podany jest tylko jeden argument, liczba zostanie sformatowana
bez miejsc dziesiętnych ale z przecinkiem pomiędzy każdą grupą tysięcy ;
- Jeśli podane są dwa argumenty, liczba będzie sformatowana - kropka
oddziela części dziesiętne, przecinek grypy tysięcy, 2 arg oznacza ilość miejsc
dziesiętnych
- Jeśli podane są cztery parametry - 3 parametr określa separator miejsc
dziesiętnych, czwarty argument separator grup tysięcy ( czyli zamienia na
przykład jak mamy liczbę 123,20 na 123.20 i odwrotnie) ;
- jedźmy dalej - mamy również link pozwalający na zakup czyli przekazujemy zmienną $_GET['kup'] o określonym id odpowiadającym danemu z towarów - wiemy już co się dzieje jeżeli dany towar dodajemy do koszyka
Plik 159koszyk.php :
- startujemy sesję - jeżeli jej nie ma ustawiamy ją jako pustą tablicę czyli
pusty koszyk, tak jak poprzednio
- jeżeli istnieje zmienna $_GET['reset'] - usuwamy zmienną z bieżącej sesji -
czyścimy koszyk
- ponowna deklaracja tablicy z towarami - oczywiście to bardzo zła metoda - w
rzeczywistości korzystamy z bazy danych, od biedy z jakiegoś pliku txt
- w pętli wyświetlamy towary jakie wybraliśmy - pętla powtarza się tyle razy -
ile jest towarów wybranych - czyli elementów w tablicy sesji koszyk
- czyli po prostu wyświetlamy towar z tablicy o indeksie takim jak numer
zapisany w tablicy sesji - tak samo wyświetlamy cenę danego towaru
- obliczamy sumę naszych zakupów do zmiennej $suma - czyli 0 + cena każdego
towarów w pętli ( można było też zapisać to $suma += .... )
- poznaną już funkcją number_format formatujemy naszą sumę do zapłaty
- no i oczywiście mamy możliwość wyczyszczenia koszyka, czyli przekazujemy
metodą GET parametr reset - co wtedy się dzieje to już wiecie