Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Koszyk :|
noose
post
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
:?
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
LeWaR
post
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)
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 8.10.2025 - 13:21