![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 50 Pomógł: 0 Dołączył: 5.11.2009 Ostrzeżenie: (0%) ![]() ![]() |
funkcja wyświetlająca 2:
funkcja wyświetlająca 1:
funkcja usuwająca:
problem jest taki: gdy mam tablice ($_SESSION['koszyk']) z kilkoma rzeczami w koszyku, np. ziemniak, ogorek, salata, kapusta, arbuz, rzodkiewka to w momencie gdy chce usunąć wszystkie pojedynczo(mam też funkcję opróżniającą cały koszyk, ale nie w tym rzecz) to niestety pojawia się problem, bo nie wszystkie elementy dają się usunąć. Przedstawię to graficznie może będzie lepiej zrozumiałe: [] pusta tablica [ziemniak, ogorek, salata, kapusta, arbuz, rzodkiewka] tablica po wyświetleniu jej oboma funkcjami (showitem(), showitem2())po dodaniu kilku elementow, [ , , ] tablica po usunięciu elementów i wyświetleniu jej za pomocą showitem(), [ogorek, kapusta, rzodkiewka] tablica po usunięciu elementów i wyświetleniu jej za pomocą showitem2(), mniej więcej to się przedstawia tak. Możecie pomóc? Byłbym wdzięczny. Ten post edytował tonapewno 6.08.2010, 13:24:32 |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 289 Pomógł: 77 Dołączył: 5.08.2006 Ostrzeżenie: (0%) ![]() ![]() |
może zobrazuję to w jeszcze innej funkcji wyświetlającej:
Jeżeli usuwasz z tablicy po kluczu, który tutaj jest typu int 0..n, no to w funkcji showitem() masz błąd logiczny, powiedzmy masz tablice array('ogorek','marchewka','pomidor','ziemniak'), wywalisz pomidora, zosstanie Ci 3 elementy, ale nie w kolejności 0,1,2 tylko 0,1,3 - więc pętla for nie pokazuje tego, co chciałbyś. Zmienna $i będzie przyjmować wartości 0,1,2 a nie 0,1,3. Rozumiesz mniej więcej ? Pozdr -------------------- awake
|
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 50 Pomógł: 0 Dołączył: 5.11.2009 Ostrzeżenie: (0%) ![]() ![]() |
rozumiem błąd, dzięki wielkie za wyjaśnienie miałbym prośbę abyś pomógł mi stworzyć funkcje delitem(), bo unset($_SESSION['koszyk'][$item]) nie działa.
|
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 289 Pomógł: 77 Dołączył: 5.08.2006 Ostrzeżenie: (0%) ![]() ![]() |
funkcja unset działa, jednak znów ten sam błąd, co w funkcji showitem(). Poprzedni przykład funkcji, który podałem, wyświetlał także link do usunięcia pozycji koszyka, w którym identyfikatorem był klucz ID. Więc tego się będę trzymał, i w najprostszej postaci funkcja usuwająca pozycję będzie miała postać:
można zrobić usuwanie po nazwie, w tedy sprawdzi się in_array(), ale to moim zdaniem gorszy pomysł, oraz bardzo ogranicza. Pozycja w tablicy równie dobrze może być także tablicą (nazwa, ilość, cena ...). Cóż, mam nadzieję że pomogłem, a przynajmniej naprowadziłem na rozwiązanie. Pozdr. -------------------- awake
|
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 24.07.2025 - 21:51 |