Post
#1
|
|
|
Grupa: Zarejestrowani Postów: 516 Pomógł: 63 Dołączył: 27.08.2012 Ostrzeżenie: (0%)
|
Witam.
To mój pierwszy post i zarejestrowałem z tej przykrej przyczyny, ze stoję w miejscu przy robieniu koszyka, a dokładniej - przy usuwaniu dodanych w sesji zakupów.
No i tutaj działa wszystko jak trzeba. Sesje tworzą się po mojej myśli. Schody zaczeły się w głupim i pewnie banalnym miejscu. Mianowicie przy odwołaniu się do usunięcia konkretnej tabeli z sesji.
No i teraz gwiazda tego tematu: funkcja UNNSET
Efekt tego skryptu jest taki, ze po wykasowaniu wszystkich sesji i dodaniu na nowo paru kolejnych produktów, mogę usunąć tylko jeden z nich. Każdy kolejny po naciśnieciu submita ani drgnie aż do ponownego wyczyszczenia całej sesji. Próbowałem googlowach i tworzyć coś na wzór rzeczy które znalazłem, ale żadna z nich nie działa. Finalnie przedstawiłem tą o to wersje, bo jest chyba najbardziej przejrzysta. Mało ogarniam programowanie w PHP, ale staram się naucz czegoś nowego, a akurat teraz w dodatku dostałem zlecenie zrobienia prostego sklepu. Byłbym bardzo wdzięczny za pomoc. Pozdrawiam Ten post edytował gitbejbe 27.08.2012, 19:43:20 |
|
|
|
![]() |
Post
#2
|
|
|
Grupa: Moderatorzy Postów: 36 561 Pomógł: 6315 Dołączył: 27.12.2004 |
Patrz proszę gdzie piszesz.... z obiektówką to nie ma żadnego związku..... przenosze.
|
|
|
|
Post
#3
|
|
|
Grupa: Zarejestrowani Postów: 516 Pomógł: 63 Dołączył: 27.08.2012 Ostrzeżenie: (0%)
|
jestem tutaj pierwszy raz, będę uważać. Dzięki.
|
|
|
|
Post
#4
|
|
|
Grupa: Moderatorzy Postów: 36 561 Pomógł: 6315 Dołączył: 27.12.2004 |
Co do problemu:
unset($_SESSION['koszyk'][1]); Przecież kasujesz tutaj zawsze produkt z numerkiem 1 więc niby czemu się dziwisz, że nie kasuje ci innych? Inne są pod innymi numerkami. |
|
|
|
Post
#5
|
|
|
Grupa: Zarejestrowani Postów: 516 Pomógł: 63 Dołączył: 27.08.2012 Ostrzeżenie: (0%)
|
domyślam się, ze o to chodzi. Jednakże mimo to iż wskazuje na element [1], to mogę usunąć jednorazowo każdą z sesji bez znaczenia pod którą tablica jest zapisana - i to jest dziwne. Prosiłbym o jakieś konkretne porady, nie mam pojęcia jak to ugryźć i jak odwołać się dokładnie do elementu, którego wskażę poprzez submita.
pokombinowałem coś i niby powinno być ok ale nie jest...
Nigdy na niczym mi tak nie zależało jak nad rozwiązaniem tej "zagadki". Proszę was o oświecenie ! termin mi się zbliża (IMG:style_emoticons/default/sad.gif) |
|
|
|
Post
#6
|
|
|
Grupa: Moderatorzy Postów: 36 561 Pomógł: 6315 Dołączył: 27.12.2004 |
unset($_SESSION['koszyk'][$id]);} // a tutaj mimo to nie chce tego wyrzucic................
Przecież dla unset masz podać index tablicy a nie wartosc tablicy... |
|
|
|
Post
#7
|
|
|
Grupa: Zarejestrowani Postów: 516 Pomógł: 63 Dołączył: 27.08.2012 Ostrzeżenie: (0%)
|
cały skrypt polega na tym, ze do tej samej sesji o nazwie "koszyk", dodawane są kolejne wartości (którymi są produkty w sklepie). W przypadku wybrania 6 produktów gdzie sesja przechowuje dane o nazwie produktu i jego cenie, za cholerę nie potrafię odwołać się do indexu np trzeciego produktu. To już 2 dzień walki a ja nadal stoje w miejscu. NAprawdę z mojej strony mam olbrzymią prośbę, aby móc mnie jaśniej naprowadzić o co w tym wszytskim chodzi i jak to działa. Nie bez powodu jestem w dziale "Przedszkole" bo taki jest mój poziom wiedzy o PHP. Za przykład w postaci kodu jestem w stanie oddać pół królestwa i rękę mojej siostry !
@edit: z tego ja wnioskuje, to mam w tym projekcie 2 sesje, "koszyk" oraz "idd". Tylko sesja Id ulega inkrementacji.
W takim razie jak mam odszukać index sesji "koszyk". Nawet nie wiem czy się on tworzy , a już tym bardziej -jeśli się tworzy, jak go wyszukać. Ten post edytował gitbejbe 28.08.2012, 17:27:06 |
|
|
|
Post
#8
|
|
|
Grupa: Moderatorzy Postów: 36 561 Pomógł: 6315 Dołączył: 27.12.2004 |
Cytat Za przykład w postaci kodu jestem w stanie oddać pół królestwa i rękę mojej siostry ! Osobiśćie strasznie nie lubię takich kłamstw....Napisałem ci co robisz źle. $id to wartość koszyka a nie indeks koszyka. DLa unset masz podać indeks a nie wartość. foreach($_SESSION['koszyk'] as $id) $id to wartość. Zajrzyj do manuala i zobaczy jak należy zmodyfikować FOREACH by otrzymać indeks |
|
|
|
Post
#9
|
|
|
Grupa: Zarejestrowani Postów: 516 Pomógł: 63 Dołączył: 27.08.2012 Ostrzeżenie: (0%)
|
...W końcu się uporałem ! Bardzo dziękuję @nospor za naprowadzenie mnie na właściwy tok myślenia : ) Dla potomnych z podobnym problemem, zamieszczam w temacie prawidłowe rozwiązanie. Z pewnością się przyda dla każdego początkującego z koszykiem opartym na sesjach : )
ps. Z połową królestwa to był tylko żart. Chciałem podkreślić powagę sytuacji w której się znajdowałem. Ale za to apropos siostry, to nie żartowałem. Mam aż 3 sztuki więc jedną mógłbym ewentualnie odstąpić ;D Pozdrawiam serdecznie i dzięki za pomoc : )
Ten post edytował gitbejbe 29.08.2012, 11:21:01 |
|
|
|
![]() ![]() |
|
Aktualny czas: 20.12.2025 - 20:25 |