Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [HTML][PHP]Prosty sklep internetowy
shemko
post 18.12.2013, 12:58:11
Post #1





Grupa: Zarejestrowani
Postów: 35
Pomógł: 0
Dołączył: 15.04.2012

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


Witam, chciałbym zrobić na tej stronie prosty sklep internetowy bez żadnego logowania, czy bazy użytkowników. Klient wchodzi w cennik/spis produktów i dodaje do koszyka to co chce (odnotowuje się nazwa produktu i cena). Kiedy wybierze to co chce przechodzi do arkusza zamówienia za pomocą którego uzupełnia dane kontaktowe i wysyła mail wraz z wybranymi produktami i sumą kosztów. Kolejne etapy realizacji zamówienia odbywają się już ze strony sklepu który kontaktuje się z klientem.

Jak najszybciej i najprościej rozwiązać to zagadnienie?

Ten post edytował shemko 18.12.2013, 12:58:58
Go to the top of the page
+Quote Post
phpion
post 18.12.2013, 13:02:20
Post #2





Grupa: Moderatorzy
Postów: 6 072
Pomógł: 861
Dołączył: 10.12.2003
Skąd: Dąbrowa Górnicza




Zadaj jakieś konkretne pytanie, z czym masz problem. Raczej nikt nie będzie Ci tu opisywał krok po kroku jak napisać taki sklepik.
Go to the top of the page
+Quote Post
Vachu
post 18.12.2013, 13:08:14
Post #3





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

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


Wordpress odpowiedni plugin i wszystko
Go to the top of the page
+Quote Post
shemko
post 18.12.2013, 14:08:19
Post #4





Grupa: Zarejestrowani
Postów: 35
Pomógł: 0
Dołączył: 15.04.2012

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


chodzi mi o to czy najlepiej zrobić to na np. na prostej sesji bez połączenia z mysql?
Go to the top of the page
+Quote Post
nospor
post 18.12.2013, 14:13:46
Post #5





Grupa: Moderatorzy
Postów: 36 556
Pomógł: 6314
Dołączył: 27.12.2004




Skoro nie masz rejestracji, a zamowienie wysylasz mailem, to tak, sama sesja ci wystarczy.


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
phpion
post 19.12.2013, 08:19:35
Post #6





Grupa: Moderatorzy
Postów: 6 072
Pomógł: 861
Dołączył: 10.12.2003
Skąd: Dąbrowa Górnicza




Pozostaje jeszcze kwestia wyświetlanych produktów. Jeśli ich liczba jest stała i nie czujesz się dobrze w programowaniu możesz je zawrzeć bezpośrednio w kodzie strony. Jeśli nie chcesz korzystać z bazy danych to możesz wykorzystać plik tekstowy/XML/cokolwiek jako "bazę" produktów. Wówczas dodanie nowego produktu to nowy wpis do pliku, a zmianę wyglądu prezentowanych produktów robisz w jednym miejscu (w pętli w szablonie).
Go to the top of the page
+Quote Post
shemko
post 20.12.2013, 15:47:26
Post #7





Grupa: Zarejestrowani
Postów: 35
Pomógł: 0
Dołączył: 15.04.2012

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


Ok mniej więcej już sobie poradziłem. Mój sklep wygląda jak poniżej. Mam jednak jeszcze jedno małe pytanie: jak wywołać sumę cen oraz sumę dodanych do koszyka wszystkich produktów?

produkty.php:
  1. <?php
  2. $produkty[]=array('nazwa'=>'monitor','cena'=>400,'opis'=>'15" LCD');
  3. $produkty[]=array('nazwa'=>'myszka','cena'=>25,'opis'=>'mała mysz optyczna');
  4. $produkty[]=array('nazwa'=>'klawiatura','cena'=>30,'opis'=>'fajna');
  5. $produkty[]=array('nazwa'=>'cd-rom','cena'=>50,'opis'=>'chyba działa');
  6. $produkty[]=array('nazwa'=>'laptop','cena'=>2300 ,'opis'=>'super laptop');
  7. ?>


index.php:
  1. <?php
  2. include_once('produkty.php');
  3. if( $_POST['wyslij'] && !empty($_POST['imie']) && !empty($_POST['adres']) ){
  4. $zapisz=date('d-h-i')."\n";
  5. $zapisz.='imie: '.$_POST['imie']."\n adres: ".$_POST['adres']."\n zamówienie: \n";
  6. foreach($_SESSION['koszyk'] as $id => $ile){
  7. $zapisz.=$produkty[$id]['nazwa']." ilość: $ile \n";
  8. $cena+=$produkty[$id]['cena']*$ile;
  9. }
  10. $zapisz.='razem: '.$cena.'zł';
  11. file_put_contents(session_id().date('dhis').'.txt',$zapisz);
  12. header('location: shop.php');
  13. }
  14. echo "<html><head><meta http-equiv='content-type' content='text/html; charset=utf-8' /></head><body>";
  15. if($_POST['edytuj']==true){
  16. foreach ($_POST as $pr => $ile){
  17. if(is_array($produkty[$pr])){
  18. if($ile=='' or $ile==0){
  19. unset($_SESSION['koszyk'][$pr]);
  20. }else{
  21. $_SESSION['koszyk'][$pr]=(int)$ile;
  22. }
  23. }
  24. }
  25. }
  26. if(is_array($produkty[$_GET['id']])){
  27. $_SESSION['koszyk'][$_GET['id']]=$_SESSION['koszyk'][$_GET['id']]+1;
  28. }
  29. if($_SESSION['koszyk']==null){
  30. echo 'brak produktów w koszyku<hr/>';
  31. }else{
  32. $cena=0;
  33. echo '<form action="'.$_SERVER['PHP_SELF'].'" method="post">
  34. imie<input type="text" name="imie" value="'.$_POST['imie'].'" /><br/>
  35. adres<input type="text" name="adres" value="'.$_POST['adres'].'" /><br/>';
  36. foreach($_SESSION['koszyk'] as $id => $ile){
  37. echo $produkty[$id]['nazwa'].'-<input type="text" name="'.$id.'" value="'.$ile.'"><br/>';
  38. }
  39. echo '<input type="submit" name="edytuj" value="zapisz zmiany"><input type="submit" name="wyslij" value="wyślij zamówienie"></form>';
  40. }
  41. echo '<table border=1><tr><td>nazwa</td><td>opis</td><td>cena</td><td>opcje</td></tr>';
  42. foreach($produkty as $id => $ar){
  43. echo '<tr><td>'.$ar['nazwa'].'</td><td>'.$ar['opis'].'</td><td>'.$ar['cena'].'</td>
  44. <td><a href="?id='.$id.'">dodaj do koszyka</a></td></tr>';
  45. }
  46. echo '</table></body></html>';
  47. ?>
Go to the top of the page
+Quote Post
Turson
post 20.12.2013, 18:47:56
Post #8





Grupa: Zarejestrowani
Postów: 4 291
Pomógł: 829
Dołączył: 14.02.2009
Skąd: łódź

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


Cytat
Ok mniej więcej już sobie poradziłem. Mój sklep wygląda jak poniżej. Mam jednak jeszcze jedno małe pytanie: jak wywołać sumę cen oraz sumę dodanych do koszyka wszystkich produktów?

Skoro ceny masz w tablicy to je zsumuj
Go to the top of the page
+Quote Post
shemko
post 21.12.2013, 00:43:23
Post #9





Grupa: Zarejestrowani
Postów: 35
Pomógł: 0
Dołączył: 15.04.2012

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


tak, produkty zapisane są w pliku produkty.php. Próbowałem wywołać sume:

  1. echo sum_array($produkty[id]['cena']);


ale nie śmiga i wyświetla cenę tylko ostatnio dodanego produktu. Jak powinna wyglądać poprawnie ta komenda?

Ten post edytował shemko 21.12.2013, 00:43:59
Go to the top of the page
+Quote Post
Arecky
post 21.12.2013, 02:12:07
Post #10





Grupa: Zarejestrowani
Postów: 13
Pomógł: 1
Dołączył: 16.12.2013

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


Musisz to policzyć pętlą, dodać sobie do zmiennej a potem echować smile.gif
Go to the top of the page
+Quote Post
shemko
post 21.12.2013, 10:31:51
Post #11





Grupa: Zarejestrowani
Postów: 35
Pomógł: 0
Dołączył: 15.04.2012

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


czy mógłbyś mi napisać jak to ma wyglądać? Przepraszam, że tak męczę ale zupełnie nie wiem jak to ugryźć smile.gif
Go to the top of the page
+Quote Post
Turson
post 21.12.2013, 12:41:00
Post #12





Grupa: Zarejestrowani
Postów: 4 291
Pomógł: 829
Dołączył: 14.02.2009
Skąd: łódź

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


Cytat(shemko @ 21.12.2013, 00:43:23 ) *
tak, produkty zapisane są w pliku produkty.php. Próbowałem wywołać sume:

  1. echo sum_array($produkty[id]['cena']);


ale nie śmiga i wyświetla cenę tylko ostatnio dodanego produktu. Jak powinna wyglądać poprawnie ta komenda?

Nie sum_array a array_sum i nie [id] a ['id']


  1. $produkty[]=array('nazwa'=>'monitor','cena'=>400,'opis'=>'15" LCD');
  2. $produkty[]=array('nazwa'=>'myszka','cena'=>25,'opis'=>'mała mysz optyczna');
  3. $produkty[]=array('nazwa'=>'klawiatura','cena'=>30,'opis'=>'fajna');
  4. $produkty[]=array('nazwa'=>'cd-rom','cena'=>50,'opis'=>'chyba działa');
  5. $produkty[]=array('nazwa'=>'laptop','cena'=>2300 ,'opis'=>'super laptop');
  6. $cena = 0;
  7. foreach($produkty as $w){
  8. $cena = $cena+$w['cena'];
  9. }
  10. echo $cena;


Go to the top of the page
+Quote Post
shemko
post 21.12.2013, 20:15:58
Post #13





Grupa: Zarejestrowani
Postów: 35
Pomógł: 0
Dołączył: 15.04.2012

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


Tyrson dziękuje bardzo za ten kod. Niestety jednak komenda wyświetla tylko niezmiennie liczbe "2805", nie wiem dlaczego :/
Go to the top of the page
+Quote Post
Turson
post 21.12.2013, 20:19:04
Post #14





Grupa: Zarejestrowani
Postów: 4 291
Pomógł: 829
Dołączył: 14.02.2009
Skąd: łódź

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


Jak to niezmiennie...?
Go to the top of the page
+Quote Post
pedro84
post 21.12.2013, 21:13:17
Post #15





Grupa: Nieautoryzowani
Postów: 2 249
Pomógł: 305
Dołączył: 2.10.2006

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


@Turson - ja idę o duży zakład, że OP bezmyślnie skopiował Twój kod z posta #12, dlatego "niezmiennie".


--------------------
Google knows the answer...
Go to the top of the page
+Quote Post
shemko
post 21.12.2013, 23:01:05
Post #16





Grupa: Zarejestrowani
Postów: 35
Pomógł: 0
Dołączył: 15.04.2012

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


Wkleiłem go dokładnie w to miejsce.

  1. <?php
  2. include_once('produkty.php');
  3. if( $_POST['wyslij'] && !empty($_POST['imie']) && !empty($_POST['adres']) ){
  4. $zapisz=date('d-h-i')."n";
  5. $zapisz.='imie: '.$_POST['imie']."n adres: ".$_POST['adres']."n zamówienie: n";
  6. foreach($_SESSION['koszyk'] as $id => $ile){
  7. $zapisz.=$produkty[$id]['nazwa']." ilość: $ile n";
  8. $cena+=$produkty[$id]['cena']*$ile;
  9. }
  10. $zapisz.='razem: '.$cena.'zł';
  11. file_put_contents(session_id().date('dhis').'.txt',$zapisz);
  12. header('location: shop.php');
  13. }
  14. echo "<html><head><meta http-equiv='content-type' content='text/html; charset=utf-8' /></head><body>";
  15. if($_POST['edytuj']==true){
  16. foreach ($_POST as $pr => $ile){
  17. if(is_array($produkty[$pr])){
  18. if($ile=='' or $ile==0){
  19. unset($_SESSION['koszyk'][$pr]);
  20. }else{
  21. $_SESSION['koszyk'][$pr]=(int)$ile;
  22. }
  23. }
  24. }
  25. }
  26. if(is_array($produkty[$_GET['id']])){
  27. $_SESSION['koszyk'][$_GET['id']]=$_SESSION['koszyk'][$_GET['id']]+1;
  28. }
  29. if($_SESSION['koszyk']==null){
  30. echo 'brak produktów w koszyku<hr/>';
  31. }else{
  32. $cena=0;
  33. echo '<form action="'.$_SERVER['PHP_SELF'].'" method="post">
  34. imie<input type="text" name="imie" value="'.$_POST['imie'].'" /><br/>
  35. adres<input type="text" name="adres" value="'.$_POST['adres'].'" /><br/>';
  36. foreach($_SESSION['koszyk'] as $id => $ile){
  37. echo $produkty[$id]['nazwa'].'-<input type="text" name="'.$id.'" value="'.$ile.'"><br/>';
  38. }
  39. echo '<input type="submit" name="edytuj" value="zapisz zmiany"><input type="submit" name="wyslij" value="wyślij zamówienie"></form>';
  40. }
  41.  
  42.  
  43. $cena = 0;
  44. foreach($produkty as $w){
  45. $cena = $cena+$w['cena'];
  46. }
  47. echo $cena;
  48.  
  49.  
  50. echo '<table border=1><tr><td>nazwa</td><td>opis</td><td>cena</td><td>opcje</td></tr>';
  51. foreach($produkty as $id => $ar){
  52. echo '<tr><td>'.$ar['nazwa'].'</td><td>'.$ar['opis'].'</td><td>'.$ar['cena'].'</td>
  53. <td><a href="?id='.$id.'">dodaj do koszyka</a></td></tr>';
  54. }
  55. echo '</table></body></html>';
  56. ?>


Ten post edytował shemko 21.12.2013, 23:02:32
Go to the top of the page
+Quote Post
Pyton_000
post 21.12.2013, 23:37:08
Post #17





Grupa: Zarejestrowani
Postów: 8 068
Pomógł: 1414
Dołączył: 26.10.2005

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


Ale o co chodzi?
Przecież iterujesz po swoich produktach a nie produktach w koszyku, więc jakim cudem ma Ci się zmieniać cena?
Albo wytłumacz po polsku OCB
Go to the top of the page
+Quote Post
shemko
post 22.12.2013, 11:36:55
Post #18





Grupa: Zarejestrowani
Postów: 35
Pomógł: 0
Dołączył: 15.04.2012

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


Tutaj już powoli zaczynam składać kod: http://www.fibarokrakow.com/sklep.php

1. Chciałbym aby wybranie produktu (po kliknięciu dodaj) wiązało się z dodaniem do np zmiennej "$suma" wartości odpowiadającej cenie wybranego produktu, a usunięcie produktu z usunięciem tej ceny z sumy.

2. Na podobnej zasadzie chce zrobić jeszcze licznik wybranych produktów gdzie $licznik będzie wyświetlał aktualną ilość wybranych produktów (produkty + ich ilość)

3. Chciałbym również aby koło koszyka był przycisk "usuń" który będzie usuwał produkt z koszyka.


Przepraszam jeśli jestem męczący z tymi wszystkim pytaniami smile.gif
Go to the top of the page
+Quote Post

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

 



RSS Wersja Lo-Fi Aktualny czas: 27.04.2025 - 04:59