Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL][PHP]Koszyk w sklepie i sesja
Forum PHP.pl > Forum > Przedszkole
Slayer_HW
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
tomxx
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. }
Slayer_HW
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?
Turson
Slayer_HW
Cytat(Turson @ 12.01.2014, 12:01:29 ) *

jest w pliku config.php który includuje w pliku naglówkowym
tomxx
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']).
nospor
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??
Slayer_HW
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
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.