Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [MySQL][PHP]Koszyk w sklepie i sesja
Slayer_HW
post 11.01.2014, 14:25:30
Post #1





Grupa: Zarejestrowani
Postów: 14
Pomógł: 0
Dołączył: 26.05.2008

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


Witam,
mam nadzieje że w dobrym dziale pisze.
Mam następujący problem:
mam koszyk w sklepie i zrobięłm zeby w danych sesji zapisywało mi ilość i id_produktu który kliknięto żeby kupić niestety te dane są dostępne zaraz po kliknięci a gdy wjde znowu w koszyk to dane z sesji sa puste
  1. <?php
  2. include 'templates/header.html';
  3. include 'templates/menu.html';
  4. if ($_POST['ilosc']!=''&&$_POST['produkt']!=''){
  5. $_SESSION['ilosc'] = $_POST['ilosc'];
  6. $_SESSION['produkt'] = $_POST['produkt'];
  7.  
  8. }else{
  9. $ilosc = $_SESSION['ilosc'];
  10. $produkt = $_SESSION['produkt'];
  11. }
  12.  
  13. $zap2 = "SELECT * FROM produkty WHERE id_produktu= '".$produkt."'";
  14. $zaw2= mysql_query($zap2);
  15. echo '<center><table class="list">
  16. <tr>
  17. <td width="10" class="list">Lp.</td><td class="list">Nazwa</td><td witdh ="20" class="list">Ilość</td><td class="list">Cena</td>
  18. </tr>';
  19. $i = 0;
  20. while ($produkt = mysql_fetch_array($zaw2)){
  21. $i++;
  22. echo '
  23. <tr class="list">
  24. <td class="list">'.$i.'</td><td class="list"><a href="pokaz.php?id='.$produkt['id_produktu'].'">'.$produkt['nazwa_produktu'].'</a></td><td class="list">'.$ilosc .'</td><td class="list">'.$produkt['cena_brutto'].' zł</td>
  25. </tr>';
  26.  
  27. }
  28. echo '</table></center>';
  29. include 'templates/stopka.html'?>

mógłby ktoś zerknąc i wskazać gdzie jest błąd. Przynam szczerze że jeszcze gubie się w sesji i mozliwe że te zmienne źle przypisuje.
I mam jeszcze jeden problem bo obezna wersjia ma działać tylko dla jednego produktu bo narazie nie mam pomysłu jak zrobić dla wielu. Ale to już taki drugoplanowy problem
Z góry dzięki za pomoc smile.gif
Go to the top of the page
+Quote Post
tomxx
post 11.01.2014, 16:44:11
Post #2





Grupa: Zarejestrowani
Postów: 172
Pomógł: 27
Dołączył: 5.10.2013

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


Wydaje mi się, że są puste, ponieważ masz:
  1. if ($_POST['ilosc']!=''&&$_POST['produkt']!=''){
  2. $_SESSION['ilosc'] = $_POST['ilosc'];
  3. $_SESSION['produkt'] = $_POST['produkt'];
  4.  
  5. }else{
  6. $ilosc = $_SESSION['ilosc'];
  7. $produkt = $_SESSION['produkt'];
  8. }
Jeśli użytkownik wypełni pola 'ilosc' i 'produkt', to blok else nie zostanie wykonany (czyli zmienne $ilosc i $produkt nie będą miały wartości). Spróbuj tak:
  1. if ($_POST['ilosc']!=''&&$_POST['produkt']!=''){
  2. $_SESSION['ilosc'] = $_POST['ilosc'];
  3. $_SESSION['produkt'] = $_POST['produkt'];
  4.  
  5. $ilosc = $_SESSION['ilosc'];
  6. $produkt = $_SESSION['produkt'];
  7. }


Ten post edytował tomxx 11.01.2014, 16:44:35
Go to the top of the page
+Quote Post
Slayer_HW
post 12.01.2014, 11:37:52
Post #3





Grupa: Zarejestrowani
Postów: 14
Pomógł: 0
Dołączył: 26.05.2008

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


faktycznie to był błąd ale nadal jest problem z tym że o ile w zmiennej $_SESSION['ilosc'] coś mi zapisuje tak w zmieniej $_SESSION['produkt'] nic nie ma. Tylko bezpośrenio po zakupie pokazuje mi kupiony przedmiot ale jak wejde znowu w koszyk to jest on pusty. Dodam też że parametr jaki rzekazuje w formularzu to element tablicy z mysql_fetch_array i wydaje mi się że powinno przekazywać wartość z podanego pola czyli w moim przypadku id_produktu. Chyba że się mle i przekazuje referencje do tablicy ? może ktoś sprostować moje przypuszczenia?
Go to the top of the page
+Quote Post
Turson
post 12.01.2014, 12:01:29
Post #4





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

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


Go to the top of the page
+Quote Post
Slayer_HW
post 12.01.2014, 13:55:57
Post #5





Grupa: Zarejestrowani
Postów: 14
Pomógł: 0
Dołączył: 26.05.2008

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


Cytat(Turson @ 12.01.2014, 12:01:29 ) *

jest w pliku config.php który includuje w pliku naglówkowym
Go to the top of the page
+Quote Post
tomxx
post 12.01.2014, 14:29:41
Post #6





Grupa: Zarejestrowani
Postów: 172
Pomógł: 27
Dołączył: 5.10.2013

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


Spróbuj to zrobić za pomocą cookie (funkcja setcookie służy do ustawiania ciasteczka, a jego wartość wyświetla się za pomocą $_COOKIE['nazwa ciastka']).

Ten post edytował tomxx 12.01.2014, 14:30:49
Go to the top of the page
+Quote Post
nospor
post 12.01.2014, 14:36:08
Post #7





Grupa: Moderatorzy
Postów: 36 457
Pomógł: 6297
Dołączył: 27.12.2004




Cytat
o ile w zmiennej $_SESSION['ilosc'] coś mi zapisuje tak w zmieniej $_SESSION['produkt']
Skoro ilosc ci zapisuje w sesji to i produkt ci zapisuje w sesji.

Skoro wydaje ci sie ze jest inaczej to:
1) Gdzies po drodze czyscisz produkt w sesji
2) Zle sprawdzasz czy zapisalo ci ilosc i produkt.
Robiles
print_r($_SESSION);
by upewnic sie co tak naprawde tam masz??


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

"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
Slayer_HW
post 12.01.2014, 15:25:43
Post #8





Grupa: Zarejestrowani
Postów: 14
Pomógł: 0
Dołączył: 26.05.2008

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


Cytat(nospor @ 12.01.2014, 14:36:08 ) *
Robiles
print_r($_SESSION);
by upewnic sie co tak naprawde tam masz??

nie robiłem i w sumie dobrze że mi to podpowiedziałeś bo okazałao się że jest tam cały rekord z bazy dancyh jako tablica a nie pojedyńcze pole które chciałem przeszłać. Juz poprawiłem i działa. Dzięki za pomoc smile.gif temat uważam za zamknięty
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.2024 - 13:26