![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 95 Pomógł: 0 Dołączył: 30.07.2003 Skąd: Gdynia Ostrzeżenie: (0%) ![]() ![]() |
Witam
Mam sobie napisany koszyk. Niestety nie wyswietla on nic :? nie wiem czemu :? (bledow tez nie wywala :?) [php:1:2bb8c0d822]<?php session_start(); ini_set('display_errors','1'); class Koszyk { var $artykuly; function dodaj($numer, $ilosc){ $this->artykuly["$numer"] += $ilosc; } function usun($numer, $ilosc){ if($this->artykuly["$numer"]>$ilosc) $this->artykuly["$numer"]-=$ilosc; else $this->artykuly["$numer"]=0; } function wyswietl(){ while(list($k, $v) = each($this->artykuly)) if($v>0) echo "Artykul nr $k - $v sztuk<br>"; } } if (!isset($_SESSION['koszyk'])) { $koszyk = new Koszyk; } else { $koszyk = new Koszyk; $koszyk1 = $_SESSION['koszyk']; while (list($art, $ilosc) = each ($koszyk1)) { while(list($a,$i) = each ($ilosc)) { if ($a != null) { $koszyk->dodaj($a,$i); echo("Artykul: $a został dodany<br>"); } } } } $akcja = $_GET["akcja"]; $co = $_GET["co"]; $ilosc = $_GET["ile"]; if ($akcja = "dodaj") { $koszyk->dodaj($co,$ilosc); } $_SESSION['koszyk'] = $koszyk; while (list($art, $ilosc) = each ($koszyk1)) { while(list($a,$i) = each ($ilosc)) { $sql = "SELECT * FROM artykuly where id = '$a'"; $rez = mysql_query($sql); include_once("../db.php"); while($w = mysql_fetch_array($rez)) { $nazwa = $w["nazwa"]; echo("<a href = "?strona=koszyk&akcja=usun&co=$id&ile=1">Usuń z koszyka $nazwa</a><br>Masz $i sztuk $nazwa<br>"); } } } $koszyk->wyswietl(); ?>[/php:1:2bb8c0d822] jakies sugestie :?: edit: wrzucilem na inny serwer i wyskakuje mi Cytat Warning: Variable passed to each() is not an array or object in /home/www/data/jaw.pl/www.hh.jaw.pl/public_html/praca/poprawka/koszyk/index.php on line 46 :?
|
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 87 Pomógł: 1 Dołączył: 22.04.2002 Skąd: Szubin Ostrzeżenie: (0%) ![]() ![]() |
Może przedstawie swoją wersję koszyka:
[php:1:fc865bb9a1]<?php class koszyk { /* tablica asocjacyjna zawierajaca stan koszyka */ /* klucz, to wartosc id produktu, wartosc to ilosc elementow */ var $zawartosc; function dodaj($element, $ilosc) { $this->zawartosc[$element] += $ilosc; } function zmien($element, $ilosc) { if ($ilosc=="0") { unset($this->zawartosc[$element]); } else { $this->zawartosc[$element] = $ilosc; } } function usun($element, $ilosc) { /* if ($this->zawartosc[$element] > $ilosc) $this->zawartosc[$element] -= $ilosc; else */ unset($this->zawartosc[$element]); } function kasuj() { unset($this->zawartosc); } function stan() { return $this->zawartosc; } } ?>[/php:1:fc865bb9a1] Obsługa: [php:1:fc865bb9a1]<?php if ($stan) { reset($stan); $razem=0; while (list($key, $value) = each($stan)) { /* tu mamy do obróbki dane o towarze i ilości } } ?>[/php:1:fc865bb9a1] A teraz moje: [php:1:fc865bb9a1]<?php # generowanie id zamówienia if (!$id_kosz) { include('serial.php'); $id_kosz=$id_zamka; session_register('id_kosz'); } /* obsługa koszyka */ # jeśli nie ma koszyka, to utwórz.. if ($log_ok!="ok") { if (!$koszyk) $koszyk = new koszyk; #dodawanie do koszyka if ($dodaj) { if (is_array($dodaj)) { while (list($key, $value) = each($dodaj)) { $koszyk->dodaj($key, $value); } } else { $koszyk->dodaj($dodaj, 1); # zamiast 1 bylo $$dodaj } } # zmiana ilości danego towaru if ($zmien) $koszyk->zmien($zmien, $$zmien); # usuwanie z koszyka if ($usun) $koszyk->usun($usun, $$usun); # kasowanie całego koszyka if ($action == "kas_kosz") { $koszyk->kasuj(); } # uporządkowanie stanu rzeczy session_register("koszyk"); $stan = $koszyk->stan(); } ?>[/php:1:fc865bb9a1] Myśle, że sie komuś przyda. Troche dużo, ale przeglądając kod ktoś sie nauczy (IMG:http://forum.php.pl/style_emoticons/default/biggrin.gif) |
|
|
![]() ![]() |
![]() |
Aktualny czas: 8.10.2025 - 13:21 |