![]() |
![]() |
![]()
Post
#1
|
|
![]() Grupa: Moderatorzy Postów: 6 072 Pomógł: 861 Dołączył: 10.12.2003 Skąd: Dąbrowa Górnicza ![]() |
Chcialbym dac wam pod ostrzal moja druga klasunie. Tym razem ma to byc koszyk zakupow.
Dane koszyka trzymane sa w tablicy z $_SESSION['koszyk'][ID_ELEMENTU] a wartosc poszczegolnej komorki okresla ZAMOWIONA_ILOSC. Np.
Nie wiedzialem za bardzo jak rozwiazac kwestie pobierania danych o towarach bedacych w koszyku wiec getData() i polaczenie ze SQL w niej jest tymczasowe ![]() Oto moja klasa:
Prosze o porady i sugestie co w niej zmienic, co dopisac itp. Z gory serdeczne dzieki! |
|
|
![]() |
![]()
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%) ![]() ![]() |
1. koszyk nie powinien sie wyswietlac tylko zwracac swoja zawartosc (mieszasz wyglad z logika biznesowa)
2. "public function Basket()" jest niepotrzebne, skoro kod ruszy tylko na php5 to pierwszy zostanie wywolany konstruktor __construkt (Basket() bylby uruchamiany gdy ten pierwszy nie istnial) 3. "getData()" ma zla nazwe, metoda nic nie zwraca a zajmuje sie (jak pobierznie patrzylem) tylko obliczaniem sumy (czegostam -- no wlasnie czego, nazwa $sum nic nie mowi) 4. emptyBasket() nie prosciej $this->basketHandler = array()? 5. patrz: dodajesz itemy do koszyka pobierasz (i liczysz) sume dodajesz jednego itema pobierasz sume -- ktora sie NIE ZMIENILA!! -------------------- Nie lubię jednorożców.
|
|
|
![]()
Post
#3
|
|
![]() Grupa: Moderatorzy Postów: 6 072 Pomógł: 861 Dołączył: 10.12.2003 Skąd: Dąbrowa Górnicza ![]() |
1. No wlasnie koszyk 'zwracany' jest przez getData, a wyswietlany dopiero przez showBasket(). Jakos inaczej to zrobic? Bo w sumie chyba jest rozbite na wczytanie danych oraz ich wyswietlenie.
2. W sumie racja ![]() 3. getData() zajmuje sie pobraniem wszelkich danych dla koszyka, tj. nazw produktow, ich cen, obliczania cen brutto, wartosci netto i brutto oraz sumy zamowienia. Dane przypisuje do obiektu koszyka. 4. W zasadzie prosciej ![]() 5. No ok, tu sie zgodze, ale przeciez i tak w praktyce dodanie kazdego itemu laczy sie z przeladowaniem strony. Dlatego jest jak jest. Racja: przy recznym wykonywanie metod w kodzie suma sie nie zmieni. No ale jak juz wspomnialem - chyba nie ma to znaczenia? |
|
|
![]()
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%) ![]() ![]() |
5. Ale nie zmienia to faktu ze jest blad w kodzie i tak nie powinno byc, wykorzystujesz tutaj hacka : takiego ze tylko raz bedziesz dodawal przedmiot i sprawdzal ceny.
3. (getData())To rozbij ja na poszczegolne metody zajmujace sie pojedynczym problemem
if (count()) jest niepotrzebne, bo gdy tablica jest pusta to foreach nie wykona sie (wykona sie zero razy) 6*. a co jest w $record[0]; ? lepiej uzyc mysql_fetch_assoc i odwoywac sie $record[ 'id' ] itd. 7*. $this->basketHandler lespiej zmieniec nazwe na $products, $items -- bardziej odpowiada temu co przechowuje; chociarz juz sie gubie -- czym jest $basket a czym $basketHandler -------------------- Nie lubię jednorożców.
|
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 945 Pomógł: 7 Dołączył: 15.03.2005 Skąd: katowice Ostrzeżenie: (0%) ![]() ![]() |
zrob tak zeby koszyk zwracał tablice array wtedy mozesz w zawsze zmienic sam wyglad koszyka np w jakims systamie szablonow
|
|
|
![]() ![]() |
![]() |
Aktualny czas: 21.08.2025 - 08:13 |