Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP][MYSQL] zapis koszyka do bazy danych MySQL
kinimod1987
post
Post #1





Grupa: Zarejestrowani
Postów: 6
Pomógł: 0
Dołączył: 12.03.2009

Ostrzeżenie: (0%)
-----


Witam wszystkich.
Oto mój koszyk na zakupy (IMG:style_emoticons/default/smile.gif)
  1. <?php
  2.  
  3. //session_destroy();
  4. echo "<html><head><meta http-equiv='content-type' content='text/html; charset=utf-8' /></head><body>";
  5.  
  6.  
  7. require('szablon_koszyk.php');
  8.  
  9. ?><div id="TRESC"><?php
  10. if(!isset($_SESSION['koszyk'])) $_SESSION['koszyk']=array(); //sprawdzam czy jest koszyk
  11.  
  12.  
  13. echo 'Twoje wybrane produkty: '.'<br>';
  14.  
  15. if(isset($_GET['idgra'])){
  16. $tmp=array('nazwa'=>$_GET['nazwa'],'kategoria'=>$_GET['kategoria'],'platforma'=>$_GET['platforma'],'cena'=>$_GET['cena'], );
  17.  
  18.  
  19. if(array_key_exists($_GET['idgra'], $_SESSION['koszyk'])) echo 'Istnieje już w koszyku gra o podanym id'.'<br>';
  20. else $_SESSION['koszyk'][$_GET['idgra']]=$tmp;
  21. }
  22.  
  23.  
  24. echo '<form action="usun.php" method="POST">';
  25. foreach ($_SESSION['koszyk'] as $sub => $key)
  26. 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 />';
  27.  
  28. echo '</form>';
  29.  
  30.  
  31.  
  32. //zliczam ile zostało produktów w koszyku
  33. foreach ($_SESSION['koszyk'] as $sub => $key){
  34. $iloscproduktow++;
  35. }
  36.  
  37. // obliczam sumę produktów
  38. $suma=0;
  39. foreach ($_SESSION['koszyk'] as $sub => $key) $suma+=$key['cena'];
  40. echo 'Łączna suma do zapłaty: ';
  41. $format_suma = number_format($suma, 2, '.', '');
  42. echo $format_suma.'<br>';
  43. echo 'Ilość produktów w koszyku: ';
  44.  
  45.  
  46.  
  47. if($iloscproduktow==0){
  48. echo 'brak produktów'.'<br>';
  49. $_SESSION['ilosc']=$iloscproduktow;}
  50. else{
  51. echo $iloscproduktow;
  52. $_SESSION['ilosc']=$iloscproduktow;}
  53.  
  54. ?></div>
  55. <?php
  56. ?>


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ć (IMG:style_emoticons/default/questionmark.gif)
Dziękuję i pozdrawiam.
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
kinimod1987
post
Post #2





Grupa: Zarejestrowani
Postów: 6
Pomógł: 0
Dołączył: 12.03.2009

Ostrzeżenie: (0%)
-----


dziękuję wszystkim za odpowiedź ale moje pytanie brzmiało inaczej.
Może i moje rozwiązanie co do tabeli nie jest optymalne ale chciałbym najpierw to zrobić na moim przykładzie bo ja nadal nie wiem jak to zapisać w kodzie by mi tak zapisywało jak chce.
Przy rejestracji użytkownika , zbieram wszystkie dane potrzebne do wysyłki i nazwa_uzytkownika jest unikalna więc nie mogą istnieć dwa takie same loginy w bazie. To jest taki mój id_user (IMG:style_emoticons/default/smile.gif) natomiast idgra to nic innego jak id_produkt.
Cytat
Po pierwsze masz trochę nie optymalny kod zliczenia ilości towarów jak i obliczanie wartości zamówienia można zrobić w jeden pętli foreach a nie w 2 !

To prawda (IMG:style_emoticons/default/smile.gif) nawet tego nie zauważyłem (IMG:style_emoticons/default/smile.gif)
Cytat
Teoretycznie mógbyś trzymać cały koszyk w zamowieniach w formacie "id1,cena1,sztuk1|id2,cena2,sztuk2|id3,cena3,sztuk3(...)" ale to jest mało eleganckie...

Jak to zapisać w postaci kodu (IMG:style_emoticons/default/questionmark.gif) Mógłbym ograniczyć że użytkownik może przechowywać tylko 5 produktów w koszyku i wstawić tylko 5 produktów do bazy .
Interesuje mnie na razie jakiś prosty sposób. Nie musi być jak najbardziej optymalny.
Pozdrawiam
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 6.10.2025 - 23:59