Mam jeszcze takie pytanie, załóżmy że dorobiłem sobie taki formularz jak wyżej i chciałbym po wysłaniu usunąć z sesji daną wartość/rekord (na podstawie zmiennej usuń).
Jeśli mam kilka produktów czy istnieje możliwość obliczenie łącznej ceny za te produkty ??i tutaj wywala mi błąd o treści : Warning: array_search() expects parameter 2 to be array, null given in C:\xampp\htdocs\sklep_internetowy\koszyk.php on line 43
-po co ci to $_SESSION[‘idd’] ? to samo bys uzyskał np. przez uzycie array_push do dodawania elementów tablicy.
Łatwiej jest tu operować całkowicie na tablicach np.:
najpierw jw. sprawdzasz czy jest koszyk
dodawanie do koszyka ze sprawdzeniem czy dubel
wypisanie zawartości koszyka
by sprawdzić czy konkretny towar jest w koszyku
albo > if(isset($_SESSION['koszyk][‘towar’])) echo ‘ten towar znajduje się już w koszyku’; else echo ‘brak tego towaru w Twoim koszyku’;
sumowanie koszyka
przykładowa struktura wynikowa tablicy/koszyka:
łatwo tym operować, w przypadku dubla przy dodawaniu możesz zwiększyć ilość tego produktu itd.
Oczywiście założyłem tu, że nazwa towaru jest unikatowa, nic jednak nie stoi na przeszkodzie, by w innym wypadku głównym kluczem identyfikującym produkt uczynić jakiś inny unikalny id a nazwę przesunąć do podtablicy z cena i ilością.
-wtedy dubla sprawdzasz porównując ten właśnie uid a nie nazwę.
<?php session_start();
//session_destroy();
if(!isset($_SESSION['koszyk'])) $_SESSION['koszyk']=array(); //sprawdzam czy jest koszyk
echo 'Twoje wybrane produkty: '.'
';
if(isset($_GET['idgra'])){
$tmp=array('nazwa'=>$_GET['nazwa'],'kategoria'=>$_GET['kategoria'],'platforma'=>$_GET['platforma'],'cena'=>$_GET['cena'], );
if(array_key_exists($_GET['idgra'], $_SESSION['koszyk'])) echo 'Istnieje już w koszyku gra o podanym id'.'
';
else $_SESSION['koszyk'][$_GET['idgra']]=$tmp;
}
foreach ($_SESSION['koszyk'] as $sub => $key)
echo 'identyfikator gry: '.$sub.', nazwa: '.$key['nazwa'].' kategoria: '.$key['kategoria'].', platforma: '.$key['platforma'].' cena: '.$key['cena'].'
';
$suma=0;
foreach ($_SESSION['koszyk'] as $sub => $key) $suma+=$key['cena'];
echo 'Łączna suma do zapłaty: '.$suma;
?>
teraz kilka pytań mam… 1. Czy istnieje możliwość usunięcia poszczególnych produktów.tzn. prześlę sobie kilka gier i jedną chciałbym usunąć bo się rozmyśliłem
Usuwanie już jest opanowane. Dodałem również do strony opcję rejestracji i logowania.
Przechowuję w bazie danych takie dane o użytkowniku:
Logowanie polega na podaniu nazwa_uzytkownika i hasla. Nie mogą istnieć dwa takie same loginy. nazwa_uzytkownika przechowuje sobie w sesji i jest ona dostępna wszędzie.
Do czego zmierzam. Chciałbym teraz zamówić to co mam w koszyku. Po naciśnięciu przycisku chciałbym zapisać to co mam w koszyku w tabeli zamówienia. Oczywiście sprawdzałbym czy użytkownik jest zalogowany (to potrafię zrobić ) czy w koszyku jest jakiś produkt (to też umiem) .
Tabela zamówienia:
idzamowienia
nazwa_uzytkownika
idgra
suma
data_zamowienia
Dobrze to sobie wymyśliłem czy może istnieje jakiś inny łatwiejszy sposób zrobienia tego. Bo jak np. zapisać dane do tabeli jeśli jest kilka produktów w koszyku ?