[PHP][MySQL] Zapis zawartości koszyka do bazy danych MySQL

0

Witam wszystkich.
Oto mój koszyk na zakupy :)

<?php

 session_start();
//session_destroy();
echo "<html><head><meta http-equiv='content-type' content='text/html; charset=utf-8' /></head><body>";


require('szablon_koszyk.php');

?><div id="TRESC"><?php
if(!isset($_SESSION['koszyk'])) $_SESSION['koszyk']=array();        //sprawdzam czy jest koszyk


echo 'Twoje wybrane produkty: '.'<br>';

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'.'<br>';
else $_SESSION['koszyk'][$_GET['idgra']]=$tmp;
}


echo '<form action="usun.php" method="POST">';
foreach ($_SESSION['koszyk'] as $sub => $key)
echo 'identyfikator gry: '.$sub.' nazwa:  '.$key['nazwa'].' kategoria: '.$key['kategoria'].' platforma: '.$key['platforma'].'<font color="red">'.' cena: '.'</font>'.$key['cena'].' <input type="submit" name="'.$sub.'" value="usuń"<br /><hr />';

echo '</form>';



//zliczam ile zostało produktów w koszyku
foreach ($_SESSION['koszyk'] as $sub => $key){
$iloscproduktow++;
}

// obliczam sumę produktów
$suma=0;
foreach ($_SESSION['koszyk'] as $sub => $key) $suma+=$key['cena'];
echo 'Łączna suma do zapłaty: ';
$format_suma = number_format($suma, 2, '.', '');
echo $format_suma.'<br>';
echo 'Ilość produktów w koszyku: ';



if($iloscproduktow==0){
echo 'brak produktów'.'<br>';
$_SESSION['ilosc']=$iloscproduktow;}
else{
echo $iloscproduktow;
$_SESSION['ilosc']=$iloscproduktow;}

?></div>
<?php
?>

Pozostało mi tylko zapis mojego zamówienia do bazy danych MySQL . Tutaj pojawia się problem bo nie mam pojęcia jak to zrobić.
Stworzyłbym tabelę 'zamowienia' i tam przechowywałbym id_zamowienia, nazwy produktów, cene, date_zamowienia i id_uzytkownika. Na stronie posiadam system logowania i nazwa_uzytkownika trzymam w sesji.

Jest ktoś w stanie mi pomóc bądź nakierować jak to zrobić ??
Dziękuję i pozdrawiam.

0

Nie umiesz. To powinno tak wyglądać:

Tabela "koszyki"
+--+------+-------------------------------+
|ID|UserID|... (jakieś inne pola)         |
+--+------+-------------------------------+
|2 |30    |            something          |
|4 |25    |                               |
+--+------+-------------------------------+

Tabela "w_koszykach"
+----------+----------+-----------+---+
|ID_Rekordu|ID_Koszyka|ID_Produktu|Ile|
+----------+----------+-----------+---+
|1         |2         |777        |1  |
|2         |2         |40         |10 |
+----------+----------+-----------+---+

Osobno koszyki, osobno zamówienia w tych koszykach. Ewentualnie jeśli tylko 1 koszyk jest dopuszczalny dla 1 usera, to wywalasz 1 tabelę, a w drugiej zmieniasz ID_Koszyka na ID_Usera

0

Stworzyłem sobie coś takiego:

 
 foreach ($_SESSION['koszyk'] as $sub => $key){
echo 'identyfikator gry: '.$sub.' nazwa:  '.$key['nazwa'].' kategoria: '.$key['kategoria'].' platforma: '.$key['platforma'].'<font color="red">'.' cena: '.'</font>'.$key['cena'].'<hr>';
$zapytanie = "INSERT INTO `zamowienia` (`idzamowienia`, `nazwa_uzytkownika`, `idgra`, `suma` , `data_zamowienia`) VALUES ('', '$_SESSION[prawid_uzyt]', '$sub', '$key[cena]', '$data_zamowienia')";

 
 $db->query("SET NAMES 'utf8'");
 $wynik = $db->query($zapytanie);}

nazwa_uzytkownika jest unikatowa więc to tak jakby tam było id_uzytkownika.
Wszystko fajnie tylko że jak kliknę przycisk złóż zamówienie i w koszyku mam np.3 produkty to w bazie danych pojawiają mi się 3 rekordy.
Czy istnieje taka możliwość by w jednym rekordzie trzymać takie 3 zamówienia. ?? np:
idzamowienia:1
nazwa_uzytkownika: xxxxxx
idgra: 15, 17, 45
suma: 340zł
data_zamowienia: xxxx-xx-xx
Czyli użytkownik zamówił trzy produkty i wszystko jest w jednym zamówieniu .

1 użytkowników online, w tym zalogowanych: 0, gości: 1