Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> koszyk PHP i MySql
przemko77
post
Post #1





Grupa: Zarejestrowani
Postów: 34
Pomógł: 0
Dołączył: 27.07.2005
Skąd: Jarocin

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


mam zamiar zrobic koszyk w php z pomoca MySql, nie bardzo wiem w jaki sposob zapisywac do bazy danych to co chce dodac do koszyka. czy ktos moze mi z tym pomoc i mi to wytlumaczyc moze na jakims malym przykladzie?
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 16)
Ociu
post
Post #2





Grupa: Moderatorzy
Postów: 1 566
Pomógł: 37
Dołączył: 14.05.2003
Skąd: Kraków




http://forum.php.pl/index.php?showtopic=33316&hl=koszyk
Go to the top of the page
+Quote Post
przemko77
post
Post #3





Grupa: Zarejestrowani
Postów: 34
Pomógł: 0
Dołączył: 27.07.2005
Skąd: Jarocin

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


a mozesz mi podac przyklad w php ktorym dodam zamowione produkty do tabeli 'koszyk' ?
Go to the top of the page
+Quote Post
zbig13
post
Post #4





Grupa: Zarejestrowani
Postów: 214
Pomógł: 0
Dołączył: 3.04.2004
Skąd: Legionowo

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


  1. <?php
  2.  
  3. $add_query = &#092;"INSERT INTO koszyk (uid, pid, ilosc) VALUES ('id_usera', 'id_produktu', 'ilosc_produktu')\";
  4. $add = mysql_query($add_query);
  5.  
  6. ?>

?
Go to the top of the page
+Quote Post
przemko77
post
Post #5





Grupa: Zarejestrowani
Postów: 34
Pomógł: 0
Dołączył: 27.07.2005
Skąd: Jarocin

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


mam dwa pliki

jeden to produkty.php

  1. <?
  2. ?>
  3. <html>
  4. <head>
  5. <meta http-equiv=\"Content-type\" content=\"text/html; charset=iso-8859-2\">
  6. </head>
  7. <body>
  8. <?php
  9.  
  10. mysql_connect (&#092;"127.0.0.1\",\"xxx\",\"xxx\");
  11. mysql_select_db (torst_torst); 
  12.  
  13. $zapytanie = &#092;"SELECT * FROM produkty \";
  14. $wykonaj = mysql_query ($zapytanie) or die(mysql_error());
  15.  
  16. while($wiersz=mysql_fetch_array ($wykonaj)) {
  17. echo &#092;"<form action=\"koszyk.php\" method=\"post\">
  18. <font size=&#092;"2\">\".$wiersz['id'].\"</font>
  19. <font size=&#092;"2\">\".$wiersz['nazwa'].\"</font>
  20. <font size=&#092;"2\">\".$wiersz['cena'].\" zł</font>
  21. <input type=&#092;"submit\" name=\"koszyk\" value=\"Dodaj\"><br><br></form>
  22. &#092;";
  23.  
  24. }
  25.  
  26. ?>
  27. </body>
  28. </html>


drugi to koszyk.php

  1. <?
  2. ?>
  3. <html>
  4. <head>
  5. <meta http-equiv=\"Content-type\" content=\"text/html; charset=iso-8859-2\">
  6. </head>
  7. <body>
  8. <?php
  9.  
  10. mysql_connect (&#092;"127.0.0.1\",\"xxx\",\"xxx\");
  11. mysql_select_db (torst_torst); 
  12.  
  13. $add_query = &#092;"INSERT INTO koszyk (user_id, product_id, ilosc_id) VALUES ('session_id', 'id_produktu', '$ilosc')\";
  14. $add = mysql_query($add_query);
  15.  
  16. ?>
  17. </body>
  18. </html>


w tym drugim pliku cos pokrecilem chyba, jak zrobic aby w drugim pliku koszyk.php dodalo mi do tabeli koszyk dane zamowionego produktu z pliku produkty.php czyli id usera, produktu, ilosc (IMG:http://forum.php.pl/style_emoticons/default/questionmark.gif)
Go to the top of the page
+Quote Post
nospor
post
Post #6





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




Cytat
$add_query = "INSERT INTO koszyk (user_id, product_id, ilosc_id) VALUES ('session_id', 'id_produktu', '$ilosc')";
ehhh, podano ci przykładowy kod, który tymiales danymi wypelnić. Nie text 'id_produktu' a konkretne id produktu, które gostek wybral.
Aby to zrobić musisz dać np. na liście chcekboxy przy produktach, gostek zaznaczy co bierze, wysyla formularz, a ty patrzysz co zaznaczyl i to dodajesz.

tu masz przyklad jak ktos uzywa chcekbox i cos tam wpisuje do bbazy:
http://forum.php.pl/index.php?showtopic=32...=0&#entry183466

na podobnej zasadzie ty masz zrobic. Pozatym jest jeszcze wiele przykladówe na forum, poszukaj
Go to the top of the page
+Quote Post
przemko77
post
Post #7





Grupa: Zarejestrowani
Postów: 34
Pomógł: 0
Dołączył: 27.07.2005
Skąd: Jarocin

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


ale ja nie chce korzystac z checkboxow tylko tak jak w pliku produkty.php ktory podalem, klikasz dodaj i przechodzi do pliku koszyk.php i pobiera tam dane z tabeli produkty i dodaje je do tabeli koszyk i pozniej wyswietla zawartosc tabeli koszyk czyli podaje co jest juz w koszyku, ja tak to przynajmniej rozumuje moze zle (IMG:http://forum.php.pl/style_emoticons/default/cool.gif)
Go to the top of the page
+Quote Post
nospor
post
Post #8





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




no to ty gościowi wyswietlasz wszystkie produkty dostępne w bazie i chcesz żeby do koszyka mu dodało? Oj, źłe rozumujesz. A jak gościu chce tylko jeden produkt a nie wszystkie?
Go to the top of the page
+Quote Post
przemko77
post
Post #9





Grupa: Zarejestrowani
Postów: 34
Pomógł: 0
Dołączył: 27.07.2005
Skąd: Jarocin

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


w pierwszym pliku produkty.php wyswietlam wszystkie produkty jakie sa w bazie, a on za pomoca przycisku dodaj decyduje co bierze i to sie pojawia w pliku koszyk.php
Go to the top of the page
+Quote Post
nospor
post
Post #10





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




eh, faktycznie, źle rzucilem okiem. Ale i tak brak podstawowych danych co bierze. Musi być jakieś pole ukryte w którym będzie id produktu, ilośc. Pozatym ty tobisz dla każdego produktu formularz. oj nie optymalnie. A co gdy gościu chce więcej niż jedne produkt - nalata się po twojej stronie.

Daj jeden formularz, jeden przycik wyslij i checkboxy przy produktach. Jako value dla checkboxa daj id produktu.
Go to the top of the page
+Quote Post
przemko77
post
Post #11





Grupa: Zarejestrowani
Postów: 34
Pomógł: 0
Dołączył: 27.07.2005
Skąd: Jarocin

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


tylko ze produktów bedzie ok 30, wolałbym typowe dodawanie po kolei do koszyka, pozniej zamowienie, musze sobie jakos z tym poradzic, w sieci jest duzo gotowych sklepów, ale ja chce stworzyc cos sam (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) przy waszej pomocy (IMG:http://forum.php.pl/style_emoticons/default/tongue.gif)
jak twoim zdaniem to najlepiej rozwiazac
Go to the top of the page
+Quote Post
nospor
post
Post #12





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




ehhh, skoro się upierasz (IMG:http://forum.php.pl/style_emoticons/default/biggrin.gif) . jak już pisalem pole ukryte

  1. <?php
  2.  
  3. while($wiersz=mysql_fetch_array ($wykonaj)) {
  4. echo &#092;"<form action=\"koszyk.php\" method=\"post\">\";
  5. echo &#092;"
  6. <input type=&#092;"hidden\" name=\"id\" value=\"\".$wiersz['id'].\"\" />
  7. <font size=&#092;"2\">\".$wiersz['id'].\"</font>
  8. <font size=&#092;"2\">\".$wiersz['nazwa'].\"</font>
  9. <font size=&#092;"2\">\".$wiersz['cena'].\" zł</font>
  10. <input type=&#092;"submit\" name=\"koszyk\" value=\"Dodaj\"><br><br>
  11. &#092;";
  12. echo &#092;"</form>\";
  13. }
  14.  
  15. ?>



a odbierasz i wkladasz do kosszyka:
  1. <?php
  2.  
  3. //....
  4. $add_query = &#092;"INSERT INTO koszyk (user_id, product_id, ilosc_id) VALUES ('session_id', {$_POST['id']}, 'ilosc')\";
  5. $add = mysql_query($add_query);
  6.  
  7. ?>
a session_id i ilosc_id (bzdurna nazwa pola) sam se zrób.
Go to the top of the page
+Quote Post
przemko77
post
Post #13





Grupa: Zarejestrowani
Postów: 34
Pomógł: 0
Dołączył: 27.07.2005
Skąd: Jarocin

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


jak zrobic w tych dwoch plikach aby po dodaniu produktu do koszyka i powrocie do zakupów po ponownym dodaniu do koszyka innego produktu pamietalo wczesniej dodane produkty :]

produkty.php

  1. <?
  2. ?>
  3. <html>
  4. <head>
  5. <meta http-equiv=\"Content-type\" content=\"text/html; charset=iso-8859-2\">
  6. </head>
  7. <body>
  8. <?php
  9.  
  10. mysql_connect (&#092;"127.0.0.1\",\"xxx\",\"xxx\");
  11. mysql_select_db (torst_torst); 
  12.  
  13. $zapytanie = &#092;"SELECT * FROM produkty \";
  14. $wykonaj = mysql_query ($zapytanie) or die(mysql_error());
  15.  
  16. while($wiersz=mysql_fetch_array ($wykonaj)) {
  17. echo &#092;"<form action=\"koszyk.php\" method=\"post\">\";
  18. echo &#092;"
  19. <input type=&#092;"hidden\" name=\"id\" value=\"\".$wiersz['id'].\"\" />
  20. <input type=&#092;"hidden\" name=\"nazwa\" value=\"\".$wiersz['nazwa'].\"\" />
  21. <input type=&#092;"hidden\" name=\"cena\" value=\"\".$wiersz['cena'].\"\" />
  22. <input type=&#092;"hidden\" name=\"ilosc\" value=\"\".$wiersz['ilosc'].\"\" />
  23. <font size=&#092;"2\">\".$wiersz['id'].\"</font>
  24. <font size=&#092;"2\">\".$wiersz['nazwa'].\"</font>
  25. <font size=&#092;"2\">\".$wiersz['cena'].\" zł</font>
  26. <input type=&#092;"text\" name=\"ilosc\" style=\"width: 25px\">
  27. <input type=&#092;"submit\" name=\"koszyk\" value=\"Dodaj\"><br><br>
  28. &#092;";
  29. echo &#092;"</form>\";
  30. }
  31.  
  32. ?>
  33. </body>
  34. </html>


koszyk.php

  1. <?
  2. ?>
  3. <html>
  4. <head>
  5. <meta http-equiv=\"Content-type\" content=\"text/html; charset=iso-8859-2\">
  6. </head>
  7. <body>
  8. <?php
  9.  
  10. mysql_connect (&#092;"127.0.0.1\",\"xxx\",\"xxx\");
  11. mysql_select_db (torst_torst); 
  12.  
  13. $add_query = &#092;"INSERT INTO koszyk (product_id, nazwa_id, cena_id, ilosc_id)
  14.                          VALUES ({$_POST['id']}, '$nazwa', '$cena', '$ilosc')&#092;";
  15. $add = mysql_query($add_query);
  16.  
  17. $zapytanie1 = &#092;"SELECT * FROM koszyk \";
  18. $wykonaj1 = mysql_query ($zapytanie1) or die(mysql_error());
  19. $wiersz1 = mysql_fetch_array ($wykonaj1);
  20. echo &#092;"
  21. <table border=&#092;"1\"><tr>
  22. <td><font size=&#092;"2\">\".$_POST['id'].\"</font></td>
  23. <td><font size=&#092;"2\">\".$nazwa.\"</font></td>
  24. <td><font size=&#092;"2\">\".$cena.\" zł</font></td>
  25. <td><font size=&#092;"2\">\".$ilosc.\" szt.</font></td>
  26. </tr></table>
  27. &#092;";
  28. ?>
  29. <a href=\"produkty.php\">Produkty</a>
  30. </body>
  31. </html>


dajcie mi jakies wskazowki do tego przykladu :] bede wdzieczny za pomoc

Ten post edytował przemko77 1.08.2005, 17:10:31
Go to the top of the page
+Quote Post
regis87
post
Post #14





Grupa: Zarejestrowani
Postów: 36
Pomógł: 0
Dołączył: 9.11.2003

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


To nie jest OT, bo do tematu koszykow (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) Do rzeczy:
Czy Waszym zdaniem lepiej robic tak jak na przykladzie powyzej koszyk na zasadzie twardego przypisywania w bazie danych wszystkich produktow w koszyku do usera, czy lepiej zrobic bardziej "ulotny" koszyk na sesjach/cookies? Na tej zasadzie, ze po wylaczeniu przegladarki (a przed wyslaniem zamowienia:P ) i powrocie na strone koszyk pusty a my z radoscia od nowa zaczynamy zakupy (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) Jakie sa plusy i minusy obu rozwiazan?
Go to the top of the page
+Quote Post
przemko77
post
Post #15





Grupa: Zarejestrowani
Postów: 34
Pomógł: 0
Dołączył: 27.07.2005
Skąd: Jarocin

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


czytałem juz sporo na temat sesji ale jakos nie moge tego do konca zrozumiec (IMG:http://forum.php.pl/style_emoticons/default/sad.gif) moze mi ktos to wytlumaczy prostymi slowami :]
Go to the top of the page
+Quote Post
nospor
post
Post #16





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




Cytat
jak zrobic w tych dwoch plikach aby po dodaniu produktu do koszyka i powrocie do zakupów po ponownym dodaniu do koszyka innego produktu pamietalo wczesniej dodane produkty :]
Przecież po dodaniu do koszyka, wyswietlasz jego zawartość za tabeli więc chyba pamięta. Sęk w tym, że ty w koszyku nie masz identyfikacji kto dodał. Wszyscy uzytkownicy walą do tego samego koszyka i nie wiadomo kto tam wrzucił. Brakuje pole identyfikującego użytkownika. Jeśli tak bardzo chcesz to mieć w tabeli musisz dorobić albo rejestrację i logowanie użytkownika i potym identyfikować. Możesz też próbować po IP, ale ono może być zmienne i już problem.

Tutaj rozwiązaniem może być właśnie sesja. Zamiast do tabeli wkładać do sesji produkty. Na czas włączonej przeglądarki gościu cały czas będzie miał produkty w koszyku (sesji). Zazwyczaj ludzie jak robią zakupy i wkładają do koszyka to od razu płacą anie wychodzą ze sklepu, po dwóch dniach wracają biarą swój koszyk i dopiero płacą. Także sesja byłaby tu chyba nawet bardziej na miejscu. Ale to rzecz gustu. Jak niechcesz sesji to dorób rejestrację użytkowników.

Cytat
czytałem juz sporo na temat sesji ale jakos nie moge tego do konca zrozumiec  moze mi ktos to wytlumaczy prostymi slowami :]
Sesja trwa na czas włączonej przeglądarki przez użytkownika (no chyba że przez 20 minut nic nie robi to sesja wygasa). Każdy użytkownik ma swoją sesję i można do niej wkładać rózne rzeczy, które będą pamiętane w czasie jej "życia". Ułatwia to wiele rozwiązań. W sesji pamiętane jest, czy gostek jest zalogowany, wrzucane są rzeczy do koszyka itp.
Go to the top of the page
+Quote Post
przemko77
post
Post #17





Grupa: Zarejestrowani
Postów: 34
Pomógł: 0
Dołączył: 27.07.2005
Skąd: Jarocin

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


wlasnie chce to zrobic na sesjach ale zupelnie nie moge sie w tym polapac a tyule juz sie naczytalem, nigdzie nie moge znalesc jakiegos konkretnego przykladu wytlumaczonego normalnym jezykiem tylko sam kod php :]
Go to the top of the page
+Quote Post

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: 23.08.2025 - 10:58