![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
![]() Grupa: Zarejestrowani Postów: 442 Pomógł: 4 Dołączył: 28.12.2008 Skąd: Warszawa Ostrzeżenie: (20%) ![]() ![]() |
Witam,
Tworzę koszyk i mam błąd który nie wiem jak obejść mianowicie o to kod:
i błąd polega na tym że dodaje tę 1 sztukę więc tak jak ma dodawać ale dodatkowo tworzy nowe rekordy w tablicy a ja bym chciał aby zmienił tylko ilość w danym produkcie. Gdzie się zakręciłem ![]() Ten post edytował kielich 8.08.2010, 21:23:06 -------------------- Życie jest jak SESJA kiedyś wygaśnie ....
Jeśli moja odpowiedź jakoś Cię nakierowała lub pomogła kliknij Pomógł |
|
|
![]()
Post
#2
|
|
![]() Grupa: Moderatorzy Postów: 36 557 Pomógł: 6315 Dołączył: 27.12.2004 ![]() |
$koszyk->dane[] = $dane;
przeciez ten kod zawsze dodaje do tablicy kolejny wpis. -------------------- "Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista "Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer |
|
|
![]()
Post
#3
|
|
![]() Grupa: Zarejestrowani Postów: 442 Pomógł: 4 Dołączył: 28.12.2008 Skąd: Warszawa Ostrzeżenie: (20%) ![]() ![]() |
tak wiem . Wypisałem tak
I jest OK jeśli mam 1 produkt i kilka razy dodany wiec sztuki się zwiększaja ale jest problem kiedy jest wiecej niz 2 produkty wtedy nie wiem jak znaleźć dany rekord Więc jak mogę to rozwiązać? -------------------- Życie jest jak SESJA kiedyś wygaśnie ....
Jeśli moja odpowiedź jakoś Cię nakierowała lub pomogła kliknij Pomógł |
|
|
![]()
Post
#4
|
|
![]() Grupa: Przyjaciele php.pl Postów: 5 724 Pomógł: 259 Dołączył: 13.04.2004 Skąd: N/A Ostrzeżenie: (0%) ![]() ![]() |
Do koszyka wstawiaj strukture/obiekt ktor bedzie zawieraj ID produktu i jego ilosc. Wtedy przegladajac zawartosc koszyka mozesz sprawdzic jaki produkt akurat przegladasz i do niego dodac kolejna sztuke itp.
-------------------- Nie lubię jednorożców.
|
|
|
![]()
Post
#5
|
|
![]() Grupa: Zarejestrowani Postów: 442 Pomógł: 4 Dołączył: 28.12.2008 Skąd: Warszawa Ostrzeżenie: (20%) ![]() ![]() |
napisałem tak
I działa to już znacznie lepiej ale jest gdzieś błąd ponieważ wpisuje w url id 4 i enter i dodaje mi do tablicy klikam jeszcze raz dodaje mi następną sztukę czyli tak jak chce ![]() Wpisuje id 6 klikam i dodaje się do tablicy z tym że dodatkowo dodaje jedna sztukę do poprzedniej czyli do ID 4 ale kiedy odświeżę to normalnie dodaje do 6 jak należy . Co jest tu nie tak ![]() Moim zdaniem problem leży w if' w foreach ponieważ zawsze będzie spełniony a muszę sprawdzić czy id jest już w tablicy analogicznie mogę użyć array_key_exists lecz kiedy zrobie tak wywala błędy array_key_exists() expects parameter 2 to be array, integer given KURDE NIKT NIE JEST W STANIE MI POMÓC ![]() -------------------- Życie jest jak SESJA kiedyś wygaśnie ....
Jeśli moja odpowiedź jakoś Cię nakierowała lub pomogła kliknij Pomógł |
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 1 332 Pomógł: 294 Dołączył: 12.10.2008 Skąd: Olkusz Ostrzeżenie: (0%) ![]() ![]() |
zwróć uwagę jak wstawiasz do koszyka kolejne produkty:
$koszyk->dane[]= $dane; tutaj kolejne produkty będą miały kolejne klucze... w sumie tak też może być ale mogło być np. $koszyk->dane[$id_produktu]= $dane; - okej, pomińmy to idźmy dalej... w $opcja['id'] trzymasz ten identyfikator, niech i tak będzie, ale funkcja array_key_exists($id,$opcja['id']) dokładnie sprawdza czy istnieje klucz w tablicy (która u Ciebie nie jest tablicą bo to identyfikator...) $opcja['id'] o nazwie $id... czyli prawie jakby to samo co sprawdzać czy istnieje zmienna w lokalizacji $opcja['id'][$id]... I działa to już znacznie lepiej ale jest gdzieś błąd ponieważ wpisuje w url id 4 i enter i dodaje mi do tablicy klikam jeszcze raz dodaje mi następną sztukę czyli tak jak chce smile.gif nie napisałeś jak wyświetlasz sobie ten koszyk... założę się, że dodajesz kolejny produkt od razu wyświetlając zawartość koszyka i zapewne robisz coś na styl:Wpisuje id 6 klikam i dodaje się do tablicy z tym że dodatkowo dodaje jedna sztukę do poprzedniej czyli do ID 4 ale kiedy odświeżę to normalnie dodaje do 6 jak należy . Co jest tu nie tak questionmark.gif? $i=2; echo $i++; // ile się wyświetli - 2 a zmienna ma 3, czyli niżej echo $i; // 3, zaś: echo ++$i; // 4 i zmienna jest 4 -------------------- Jeśli twoja ręka rusza do przodu powstrzymaj swój gniew; gdy wyprzedza cię twój gniew - wycofaj rękę.
|
|
|
![]()
Post
#7
|
|
![]() Grupa: Zarejestrowani Postów: 442 Pomógł: 4 Dołączył: 28.12.2008 Skąd: Warszawa Ostrzeżenie: (20%) ![]() ![]() |
Dziękuje za opowiedz ale szczerze mówiąc do niczego mnie to nie nakierowało
![]() -------------------- Życie jest jak SESJA kiedyś wygaśnie ....
Jeśli moja odpowiedź jakoś Cię nakierowała lub pomogła kliknij Pomógł |
|
|
![]()
Post
#8
|
|
Grupa: Zarejestrowani Postów: 1 332 Pomógł: 294 Dołączył: 12.10.2008 Skąd: Olkusz Ostrzeżenie: (0%) ![]() ![]() |
pokaż gdzieś ale w całości skrypt którym dodajesz produkty i którym wyświetlasz zawartość koszyka - z tego co pisałeś na 99% jest to ten sam skrypt gdzie wszystko się dzieje w jednej akcji...
-------------------- Jeśli twoja ręka rusza do przodu powstrzymaj swój gniew; gdy wyprzedza cię twój gniew - wycofaj rękę.
|
|
|
![]()
Post
#9
|
|
![]() Grupa: Zarejestrowani Postów: 442 Pomógł: 4 Dołączył: 28.12.2008 Skąd: Warszawa Ostrzeżenie: (20%) ![]() ![]() |
O to cały kod
Jeśli nie pracujesz z zendem a chcesz mi pomóc ![]() Ten post edytował kielich 9.08.2010, 11:31:56 -------------------- Życie jest jak SESJA kiedyś wygaśnie ....
Jeśli moja odpowiedź jakoś Cię nakierowała lub pomogła kliknij Pomógł |
|
|
![]()
Post
#10
|
|
Grupa: Zarejestrowani Postów: 1 332 Pomógł: 294 Dołączył: 12.10.2008 Skąd: Olkusz Ostrzeżenie: (0%) ![]() ![]() |
O to cały kod... Prawie, jednak nie cały bo i metoda nie domknięta a i nie ma przykładu użycia tej metody ![]() ![]() ...Jeśli nie pracujesz z zendem a chcesz mi pomóc w ogóle przy komputerach nie pracuję ^^ - a do zenda czasem zaglądam coby nieraz podpatrzeć zależności klas - jednak z samego zenda jakoś nigdy nie korzystałem - ale jestem wzrokowcem to i tego kodu nie musiałem odpalać ![]() ![]() skoro to prawie działa to zamień ten foreach:
na ten:
oczywiście od tak tylko piszę, że ten ciąg powinien być w tej metodzie zwrócony a nie wyświetlony od razu na ekran ![]() PS. chyba dawniej sporo pisałeś w czymś w stylu VBA ![]() -------------------- Jeśli twoja ręka rusza do przodu powstrzymaj swój gniew; gdy wyprzedza cię twój gniew - wycofaj rękę.
|
|
|
![]()
Post
#11
|
|
![]() Grupa: Zarejestrowani Postów: 442 Pomógł: 4 Dołączył: 28.12.2008 Skąd: Warszawa Ostrzeżenie: (20%) ![]() ![]() |
No jednak to nic nie dało kiedy dodam do koszyk wyjde wybieram nowy produkt i klikam do koszyk to dodaje ale wartość poprzednio dodanego zwiększa o jeden
![]() -------------------- Życie jest jak SESJA kiedyś wygaśnie ....
Jeśli moja odpowiedź jakoś Cię nakierowała lub pomogła kliknij Pomógł |
|
|
![]()
Post
#12
|
|
Grupa: Zarejestrowani Postów: 1 332 Pomógł: 294 Dołączył: 12.10.2008 Skąd: Olkusz Ostrzeżenie: (0%) ![]() ![]() |
to podaj gdzieś cały kod - zmienić się zmieniło bo wcześniej echo wyświetlało Ci zawartość koszyka przed dodaniem +1, teraz echo się wyświetla po dodaniu +1...
podaj cały kod z przykładem urzycia gdzieć - czy to na wklej czy gdziekolwiek... podaj w komentarzu u góry jeszcze adres koszyka przykładowy i przykładowy adres produktu - może metodę tą masz także w określonym produkcie użytą ![]() -------------------- Jeśli twoja ręka rusza do przodu powstrzymaj swój gniew; gdy wyprzedza cię twój gniew - wycofaj rękę.
|
|
|
![]()
Post
#13
|
|
![]() Grupa: Zarejestrowani Postów: 442 Pomógł: 4 Dołączył: 28.12.2008 Skąd: Warszawa Ostrzeżenie: (20%) ![]() ![]() |
Napisałem cały kod już jest po prostu użyty poprzez kontroler np. localhost/koszyk/5
gdzie 5 do ID -------------------- Życie jest jak SESJA kiedyś wygaśnie ....
Jeśli moja odpowiedź jakoś Cię nakierowała lub pomogła kliknij Pomógł |
|
|
![]()
Post
#14
|
|
Grupa: Zarejestrowani Postów: 1 332 Pomógł: 294 Dołączył: 12.10.2008 Skąd: Olkusz Ostrzeżenie: (0%) ![]() ![]() |
czy na pewno zamieniłeś sobie te pętle foreach??... nie masz tam czasem redirecta gdzieś [np. po dodaniu pierwszego produktu, gdyz kod podałeś bez domknięcia...]
![]() $id = $filtr->filtrowanie_id($this->getRequest()->getParam('id')); dlaczego niby twierdzisz??: Cytat Moim zdaniem problem leży w if' w foreach ponieważ zawsze będzie spełniony wpisz może var_dump($id) zaraz po przypisaniu jej wartości?? - czy to string czy liczba... -------------------- Jeśli twoja ręka rusza do przodu powstrzymaj swój gniew; gdy wyprzedza cię twój gniew - wycofaj rękę.
|
|
|
![]()
Post
#15
|
|
![]() Grupa: Zarejestrowani Postów: 442 Pomógł: 4 Dołączył: 28.12.2008 Skąd: Warszawa Ostrzeżenie: (20%) ![]() ![]() |
$id jest liczba(integer) jak widać jest filtrowane i jest to id produktu dodane do koszyka a o to cały kod
Odpal to sobie jest możesz ponieważ kompilujesz wzrokowo i może coś pominąłeś ![]() ![]() Ten post edytował kielich 9.08.2010, 13:46:24 -------------------- Życie jest jak SESJA kiedyś wygaśnie ....
Jeśli moja odpowiedź jakoś Cię nakierowała lub pomogła kliknij Pomógł |
|
|
![]()
Post
#16
|
|
Grupa: Zarejestrowani Postów: 1 332 Pomógł: 294 Dołączył: 12.10.2008 Skąd: Olkusz Ostrzeżenie: (0%) ![]() ![]() |
zamień tą metodę na inną - trochę mi tu coś nie gra - nie wiem, czy masz gdzieś redirekta czy co [akurat nie w metodzie], jeśli już to wcześniej zobaczysz skok o 2 [zamieniłem też tutaj strukturę tabeli koszyka]:
a wogóle to bym to podzielił na 2 części razem z redirektem gdyż różne rzeczy o indexacji słyszałem...
-------------------- Jeśli twoja ręka rusza do przodu powstrzymaj swój gniew; gdy wyprzedza cię twój gniew - wycofaj rękę.
|
|
|
![]()
Post
#17
|
|
![]() Grupa: Zarejestrowani Postów: 442 Pomógł: 4 Dołączył: 28.12.2008 Skąd: Warszawa Ostrzeżenie: (20%) ![]() ![]() |
Czy ty na prawdę pisałeś to specjalnie dla mnie
![]() ![]() ![]() -------------------- Życie jest jak SESJA kiedyś wygaśnie ....
Jeśli moja odpowiedź jakoś Cię nakierowała lub pomogła kliknij Pomógł |
|
|
![]()
Post
#18
|
|
Grupa: Zarejestrowani Postów: 1 332 Pomógł: 294 Dołączył: 12.10.2008 Skąd: Olkusz Ostrzeżenie: (0%) ![]() ![]() |
Pierwszy kod (mój przerobiony) działa jak należy oczywiście dodałem jeszcze sprawdzanie czy jest tyle w bazie itd. itd. ale działa jak należy... tylko i tak jak wspomniałem pasowało by ten pierwszy kod uszczuplić a wyświetlanie przerzucić na inną akcję choćby z tego względu, iż user gdy będzie w innej części sklepu to może będzie chciał zajrzeć do koszyka??... albo idąc dalej jak już będziesz dorabiał zarządzanie koszykiem [czyli usuwanie produktów itp.] to też potem pasuje to wyświetlić... a wystarczyło by bez wyświetlania dodawać/usuwać zawartość koszyka a po całej operacji redirektem przekierować na stronę z akcją wyświetlania koszyka - tzn. jego zawartości... w zasadzie przy zarządzaniu koszykiem tam też można by zwiększać i zmniejszać liczbę produktów a czy się zwiększa czy zmniejsza można rozpoznać po odpowiednim klikniętym przycisku formularza... i tą operację usuwania można by dać do metody dodawania tylko bardziej to rozbudować [choć dla wygody można by wydzielić do innej metody a dopiero tamtą metodę usuwania wywołać w metodzie dodawania]...tak tylko ogólnie piszę, ale z tego co się orientuję to wielu jeśli akcja była przez linki zakupów z botami miało problemy - choćby z indeksacją koszyka w google... ale w sumie to też pisze tak ogólnie i w zasadzie zrób jak uważasz ![]() -------------------- Jeśli twoja ręka rusza do przodu powstrzymaj swój gniew; gdy wyprzedza cię twój gniew - wycofaj rękę.
|
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 14.08.2025 - 08:02 |