Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: problem z przeliczaniem w koszyku...
Forum PHP.pl > Forum > PHP
marekk
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]
spenalzo
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.
marekk
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
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.