![]() |
![]() ![]() |
![]() |
![]() ![]()
Post
#1
|
|
![]() Grupa: Zarejestrowani Postów: 873 Pomógł: 25 Dołączył: 24.07.2005 Ostrzeżenie: (0%) ![]() ![]() |
Witam,
tworzę sobie zupełnie dla treningu koszyk zakupów. Mam już dodawanie i edycję ilości. Pojawiły się dwa problemy. Jeden estetyczny drugi nie. Mam sobie plik addToCart.php w którym wyświetlam koszyk. Ma on postać takiego linku http://127.0.0.1/myShop/addToCart.php?id=1&productId=3 gdzie id to id kategorii a produktId wiadomo. plik ten ma postać
teraz muszę wkleić jeszcze pliki dwa służące edycji (krótkie są) editForm.php
oraz sama akcja edit.php
o i teraz tak. Jeden estetyczny bląd bo gdy zmienie liczbe sztuk to oczywiście zmienia ale wypisuje, że towar jest już w koszyku. I dobrze bo tak jest zakodowane i nie wiem jak to poprawić. Jest coś co namierza skąd pochodzą zmiany? wtedy by sie zrobiło że gdy z pliku edit to coś tam coś tam. Drugi problem to usuwanie z koszyka. Linie w edit są zakomentowane bo to usuwanie jakoś nie kosi. Gdy ilość updejtowana = 0 wtedy unset session. Nie wiem czy to, że źle działa nie jest spowodowane wyświetlaniem koszyka? nawet wtedy źle updejtuje ilość gdy <> 0. Np. jak dodam jeden towar do koszyka i chce go usunąć to nie usuwa. gdy dodam drugi to moge usunąć który kolwiek, jednak ten co zostanie nie mogę nadać mu innej ilosci. Zwariuje. sorry za długiego posta. pozdro |
|
|
![]()
Post
#2
|
|
![]() Grupa: Przyjaciele php.pl Postów: 5 724 Pomógł: 259 Dołączył: 13.04.2004 Skąd: N/A Ostrzeżenie: (0%) ![]() ![]() |
Wez uzyj jakiegos prostego Frameworka, np Kohana, tam bedziesz mial wszystkie akcje podzielone na metody, tak ze edycja nie bedzie ci sie mieszac z dodawaniem. I prosciej bedzie zrozumiec/zakodzic co w danej chwili sie uruchomi.
Do tego odzielisz troche SQL, od PHP i od HTMLa -------------------- Nie lubię jednorożców.
|
|
|
![]()
Post
#3
|
|
![]() Grupa: Zarejestrowani Postów: 873 Pomógł: 25 Dołączył: 24.07.2005 Ostrzeżenie: (0%) ![]() ![]() |
wiem i masz napewno rację, jednak robie to zupelnie na surowo i po raz 1szy i chciałbym aby najpierw mój pomysł zadziałał a potem wezmę się za frameworki.
jakieś sugestie co do poprawki mojego zamąconego kotła? wydaje mi się, że źle używam funkcji unset(); bo po jej wykonaniu zostaje taki array Array ( [1] => Array ( [id] => 2 [ile] => 1 ) [0] => Array ( [ile] => 4 ) ) ile: 4 czyli tam gdzie wyboldowałem nie usuwa się wszystko zostaje ile. Tablica winna przyjąć postać Array ( [1] => Array ( [id] => 2 [ile] => 1 ) Ten post edytował john_doe 29.06.2009, 00:15:56 |
|
|
![]()
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%) ![]() ![]() |
Cytat jakieś sugestie co do poprawki mojego zamąconego kotła? No chyba zartujesz ze bede probowal to spagetti przeanalizowac, wlasnie temu sugeruje ci FW bo zmusi cie do lekkiego porzadku w kodzie./ -------------------- Nie lubię jednorożców.
|
|
|
![]()
Post
#5
|
|
![]() Grupa: Zarejestrowani Postów: 873 Pomógł: 25 Dołączył: 24.07.2005 Ostrzeżenie: (0%) ![]() ![]() |
bez przesady 60 linijek kodu to nie jakieś spaghetti
![]() Ten post edytował john_doe 29.06.2009, 08:06:52 |
|
|
![]()
Post
#6
|
|
![]() Grupa: Zarejestrowani Postów: 426 Pomógł: 32 Dołączył: 24.05.2007 Ostrzeżenie: (0%) ![]() ![]() |
Tragedia kolejny osc się rodzi skąd ludzie takie nawyki biorą
![]() To może jak w koszu masz zero to daj unset całego przedmiotu a nie zmieniasz ilość na 0, bo przedmiot Ci zostaje i podejrzewam że wyświetla że jest przez tą funkcję findValue czy jakoś tak. A w tablicy masz indeks 'ile', który pokazuje że jest 0 sztuk. Ablo 2 sprawa zmień funkcję findValue, żeby sprawdzała ilość sztuk danego przedmiotu w koszyku i jak jest 0 to żeby zwracała false. Ten post edytował deirathe 29.06.2009, 08:38:03 -------------------- |
|
|
![]()
Post
#7
|
|
![]() Grupa: Zarejestrowani Postów: 873 Pomógł: 25 Dołączył: 24.07.2005 Ostrzeżenie: (0%) ![]() ![]() |
no właśnie jak daje
to usuwam tylko id produktu z koszyka, pozostaje mi ilość sztuk Array ( [1] => Array ( [id] => 2 [ile] => 1 ) [0] => Array ( [ile] => 4 ) ) i mam kłopot by usunąć wszystko. P.S. Każdy się czegoś uczy. Robię to cudo po raz 1wszy. Kombinuje po swojemu i dlatego tak to wygląda. Najpierw chcę osiągnąć za wszelką cenę funkcjonalność. Potem to porządkować, przerabiać itp. Nie chce się przekomarzać ale nawyków nie mam skąd nabierać bo nie pracuję jako programista php w jakimś zespole choć byłoby fajnie. Programuje codziennie po 10 h w Transact SQLu. |
|
|
![]()
Post
#8
|
|
![]() Grupa: Zarejestrowani Postów: 426 Pomógł: 32 Dołączył: 24.05.2007 Ostrzeżenie: (0%) ![]() ![]() |
Wiesz czasem po osiągnięciu funkcjonalności właśnie tym sposobem który tu przedstawiasz, będziesz musiał wszystko pisać od nowa- niestety taki fakt. Co do programowania jeżeli chcesz się nauczyć jak pisać ciekawie, a masz jakieś podstawy to polecam Ci książkę
http://webmade.org/recenzje/wzorce-projekt...e-obiektowe.php Co do problemu- masz źle zbudowaną w takim razie tablicę. Przebuduj ją na koszyk ->idproduktu->(ilosc,nazwa,i inne) i wtedy jak zrobisz unset koszyk[id_produktu] to masz pewnosc ze wywali wszystko I trochę o bezpieczeństwie poczytaj ![]() Ten post edytował deirathe 29.06.2009, 10:38:56 -------------------- |
|
|
![]()
Post
#9
|
|
![]() Grupa: Zarejestrowani Postów: 873 Pomógł: 25 Dołączył: 24.07.2005 Ostrzeżenie: (0%) ![]() ![]() |
spoko wiem, że nie jest to bezpieczne ale nie o to chodzi. Co do funkcjonalności to na bank będę musiał napisać na nowo ale już z bogatszym portfelem doświadczenia.
Tablica może nie jest źle zbudowana tylko coś mi nie wychodzi by to zunsetować Przecież ma postać Array ( [1] => Array ( idProduktu, ileTegoProduktu ) ) |
|
|
![]()
Post
#10
|
|
![]() Grupa: Moderatorzy Postów: 6 072 Pomógł: 861 Dołączył: 10.12.2003 Skąd: Dąbrowa Górnicza ![]() |
Mając 1 produkt w koszyku musisz wykonać 1 zapytanie aby wyświetlić zawartość koszyka. Mając 10 produktów zapytań tych masz 10, przy 20 produktach 20. Niezależnie od ilości produktów możesz pobrać produkty 1 zapytaniem. Jak? Zamiast w pętli wykonywać:
lepiej użyć do tego IN:
czyli zrobić implode(', ', $tablica_id_produktow). |
|
|
![]()
Post
#11
|
|
![]() Grupa: Zarejestrowani Postów: 873 Pomógł: 25 Dołączył: 24.07.2005 Ostrzeżenie: (0%) ![]() ![]() |
racja, dzięki. podziałam po pracy. Dobre spostrzeżenie <gitara>
|
|
|
![]() ![]() |
![]() |
Aktualny czas: 22.08.2025 - 06:21 |