![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 65 Pomógł: 0 Dołączył: 27.05.2003 Ostrzeżenie: (0%) ![]() ![]() |
Witam,
mam działający koszyk z tym, że można do niego ładować 1 typ elementow. Chciałbym teraz aby mozna było do niego wrzucać równiez inne typy elementow czyli rzeczy np. z 2 czy kilku roznych tabel, których id-ki mogą sie powtarzac. Coś szwankuje mi przeliczanie w koszyku tzn. nie wiem jak odpowiednio powiazac id-ki z typem dodawanego elementu. Mam klase w pliku sklep.php: [php:1:afa52117c2] <? class koszyk { var $zawartosc, $typ_zawartosc; function dodaj($typ, $element, $ilosc) //dodaje { $this->zawartosc[$element] += $ilosc; $this->typ_zawartosc[$element] = $typ; } function liczba($typ, $element, $ilosc) // przelicza { if (0 < $ilosc) { $this->zawartosc[$element] = $ilosc; $this->typ_zawartosc[$element] = $typ; } else { $this->zawartosc[$element] = 0; $this->typ_zawartosc[$element] = $typ; } } function stan() { return $this->zawartosc; return $this->typ_zawartosc; } } session_start(); if (!$koszyk) $koszyk = new koszyk; if ($dod) $koszyk->dodaj($zmm,$dod,1); if($poz) while ($a=each($poz)) { $koszyk->liczba($a[0],$a[1],$a[2]); } ... ?> Teraz dodaje cos do koszyka <A HREF="sklep.php?s=koszyk&dod=<?print($myrow[id]);?>&zmm=1"> i jest ok. tzn. zwieksza sie co trzeba. I w skrocie plik z koszykiem <? $stan = $koszyk->stan(); $suma=0; if ($stan) while (list($key, $value) = each($stan)) { $typp = $koszyk->typ_zawartosc[$key]; // typ elementu $result=mysql_query("SELECT * FROM sklep WHERE id=$key",$link); while($myrow=mysql_fetch_array($result)) ?> <input type="text" name="poz[<?print($myrow[id]);?>]" value="<?print($value);?>" size="3" size="10"> <? } } ... tutaj przycisk z przeliczaniem... ?> [/php:1:afa52117c2] Problem tkwi w przerobieniu tego tak aby zapamietywal odpowiednio typ pozycji i pozniej w zaleznosic od niego przeliczal (funkcja liczba() prezlicza). Pozdrawiam, Marek ---- Proszę użyć odpowiedniego BBCode (Instrukcja) dla zaznaczenie listingu php. (scanner) Nie męcz sie scanner, on nawet tego nie zauważył [KaMeLeOn] |
|
|
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 2 064 Pomógł: 1 Dołączył: 22.01.2003 Skąd: Poznań Ostrzeżenie: (0%) ![]() ![]() |
Cytat Problem tkwi w przerobieniu tego tak aby zapamietywal odpowiednio typ pozycji i pozniej w zaleznosic od niego przeliczal (funkcja liczba() prezlicza).
Nie wiem, czy dobrze zrozumiałem, ale dodaj sobie pole "typ" do tabeli koszyka i wstawiaj typ produktu. |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 65 Pomógł: 0 Dołączył: 27.05.2003 Ostrzeżenie: (0%) ![]() ![]() |
tak dobrze myslisz ale problem jest w przeliczaniu już w koszyku. Jak widać zze skryptu dodałem już zmienna określającą typ a jest nią $typ_zawartosc i np. samo dodawanie roznych produktow do koszyka niby działa - ale w koszyku pozniej nie chce mi przeliczac tzn. gdy cos chce przeliczyc kasuje inne pozycje itp. i nie wiem jak temu zaradzic.
Zastanawiam się czy na pewno trzeba dodać pole "typ" czy moze jakos inaczej to zrobic np. na 2 koszyki rozbic jak sa 2 typy?? Owszem zawsze mozna to rozwiązac inaczej dostosowując typ sprzedawanej rzeczy do 1 tabeli w bazie ale takie rozwiązanei jest bez sensu, stasznie czasochłonne i w przypadku kadego noweg typu rzeczy łaczy sie z przerobkami/dostosoaniem typu do bazy... Moze ktos już przerabiał sklep z roznymi typami artykułów na klasac pdobnych jak ta? Pozdrawiam, Marek |
|
|
![]() ![]() |
![]() |
Aktualny czas: 26.08.2025 - 20:01 |