558 PHP i MySQL dla każdego
else if($ P0ST[$key] < 1){ unset($_SESSI0N['koszyk'][$key]);
}
else{
$ SESSION['koszyk'][$key] = $_P0ST[$key]:
}
Funkcja przegląda w pętli foreach wszystkie wpisy w tablicy koszyk i sprawdza, czy istnieje korespondujący wpis w tablicy $_P0ST. Jeśli nie istnieje, dana pozycja jest usuwana z koszyka. Jeśli natomiast w tablicy $_P0ST znajduje się klucz o takim samej wartości, jak wpis w tablicy koszyk, jest sprawdzana jego wartość. Kiedy wartość ta jest mniejsza od 1, oznacza to, że dana książka ma zostać usunięta z koszyka, jest więc usuwany wpis z tablicy koszyk. W przypadku gdy wartość klucza w tablicy $_P0ST jest większa od 0, oznacza to, że jest ona aktualną liczbą zamówionych egzemplarzy danej książki, musi być więc zapisana w tablicy koszyk.
Skoro funkcje obsługujące koszyk sąjuż gotowe, możemy przystąpić do napisania kodu zajmującego się obsługą zamówień. Będą to funkcje checkout oraz saveorder. Zadaniem pierwszej z nich jest sprawdzenie, czy mamy do czynienie z załogowanym użytkownikiem i wyświetlenie podsumowania zamówienia, natomiast zadaniem drugiej jest zapisanie zamówienia do bazy danych. Kod funkcji checkout został zaprezentowany na listingu 21.12. Z kolei przykładowy wygląd generowanego przez nią podsumowania zmówienia jest widoczny na rysunku 21.9.
Listing 21.12. Kod funkcji checkout function checkoutO {
i f(!i sSet($_SESSI0N['Userld' ])){ echo("<h3 align='center’> Aby złożyć zamówienie muszisz być "): echo("<a href='main.php?action=slf'> zalogowany</a>.<br>"); echoCJeśli nie masz jeszcze konta w naszym serwisie. "): echo(''<a href-'main.php?action=srf'>załóż je teraz</a>.<h3>”>: return;
if(!isSet($ SESSIONC'koszyk'])){ $ SESSION?'koszyk'] = arrayO;
if(count($_SESSI0N['koszyk']) < 1){ echo("<p align-’center'>Koszyk jest pusty</p>"): return true: