Nie obrażam się, napisałem, że jestem początkujący i to bardzo. Ten skrypt nie jest mój, ja tylko staram się go przerobić.
Wkleję wam oryginalny skrypt a wy postarajcie się może w miarę swoich możliwości podpowiedzieć co mam zrobić żeby działało tak jak trzeba...
Plik php.php:
<?php
function poczatek_sesji()
{
if (!isset($_SESSION['koszyk'])) {
$_SESSION['koszyk']=array('ksiazki'=>array
(),'akcesoria'=>array
()); }
}
function do_koszyka($ksiazki)
{
if (!isset($_POST['do_koszyka'])) return; if (count($_POST['towary'])===0
) return; $towary=$_POST['towary'];
foreach($towary as $towar)
{
$id=(int
)(substr($towar,0
,6
)); $klucz_cena='cena'.$id;
$klucz_ilosc='ile'.$id;
if ($ksiazki)
{
$count=count($_SESSION['koszyk']['ksiazki']); $_SESSION['koszyk']['ksiazki'][$count]['opis']=substr($towar,6
); $_SESSION['koszyk']['ksiazki'][$count]['cena']=$_POST[$klucz_cena];
$_SESSION['koszyk']['ksiazki'][$count]['ilosc']=$_POST[$klucz_ilosc];
}
else
{
$count=count($_SESSION['koszyk']['akcesoria']); $_SESSION['koszyk']['akcesoria'][$count]['opis']=substr($towar,6
); $_SESSION['koszyk']['akcesoria'][$count]['cena']=$_POST[$klucz_cena];
$_SESSION['koszyk']['akcesoria'][$count]['ilosc']=$_POST[$klucz_ilosc];
}
}
}
function pusty_koszyk()
{
if (!isset($_POST['pusty_koszyk'])) return; $_SESSION['koszyk']['ksiazki']=array(); $_SESSION['koszyk']['akcesoria']=array(); echo '<br />Koszyk jest pusty!'; }
function pokaz_koszyk()
{
if (!isset($_POST['pokaz_koszyk'])) return; $ksiazki=$_SESSION['koszyk']['ksiazki'];
$akcesoria=$_SESSION['koszyk']['akcesoria'];
{
echo 'Koszyk jest pusty!'; return;
}
$suma=0;
{
for($k=0;$k<count($ksiazki);$k++)
{
$suma+=$ksiazki[$k]['cena']*$ksiazki[$k]['ilosc'];
echo ($k+1).'. '.$ksiazki[$k]['opis'].', cena: ' .$ksiazki[$k]['cena'].', ilość: '.$ksiazki[$k]['ilosc'].'<br />'."\n";
}
}
{
echo '<br />Akcesoria:<br />'; for($k=0;$k<count($akcesoria);$k++)
{
$suma+=$akcesoria[$k]['cena']*$akcesoria[$k]['ilosc'];
echo ($k+1).'. '.$akcesoria[$k]['opis']. ', cena: '.$akcesoria[$k]['cena'].', ilość: '.$akcesoria[$k]['ilosc'].'<br />'."\n";
}
}
echo '<br />Wartość towarów w koszyku: '.$suma; }
?>
Plik sklep.php
<?php
include('php.php');
poczatek_sesji();
?>
<!doctype html>
<html>
<head>
<title>Testowanie skryptów PHP</title>
<meta charset="utf-8" />
</head>
<body>
<h1>Sklep internetowy</h1>
<p><a href="ksiazki.php">Książki</a></p>
<p><a href="akcesoria.php">Akcesoria</a></p>
<br />
<form action="sklep.php" method="post">
<input type="submit" name="pusty_koszyk" value="Pusty koszyk" />
<input type="submit" name="pokaz_koszyk" value="Pokaż koszyk" />
</form>
<?php
pusty_koszyk();
pokaz_koszyk();
?>
</body>
</html>
Plik ksiazki.php
<?php
include('php.php');
poczatek_sesji();
?>
<!doctype html>
<html>
<head>
<title>Testowanie skryptów PHP</title>
<meta charset="utf-8" />
</head>
<body>
<h1>Książki</h1>
<p><a href="sklep.php">Sklep</a></p>
<p><a href="akcesoria.php">Akcesoria</a></p>
<br />
<form action="ksiazki.php" method="post">
<p>
<label><input type="checkbox" name="towary[]"
value="000000Jak zdać egzamin, autor: Józef Nauczyciel" />
Jak zdać egzamin, autor: Józef Nauczyciel
</label>
, cena<input type="text" name="cena0" value="20" style="width:30px;" />
, ilość<input type="text" name="ile0" style="width:30px;" />
</p>
<p>
<label><input type="checkbox" name="towary[]"
value="000001Podstawy PHP, autor: Jan Mądry" />
Podstawy PHP, autor: Jan Mądry
</label>
, cena<input type="text" name="cena1" value="40" style="width:30px;" />
, ilość<input type="text" name="ile1" style="width:30px;" />
</p>
<p>
<label><input type="checkbox" name="towary[]"
value="000002HTML 5, autor: Piotr Programista" />
HTML 5, autor: Piotr Programista
</label>
, cena<input type="text" name="cena2" value="60" style="width:30px;" />
, lość<input type="text" name="ile2" style="width:30px;" />
</p>
<input type="submit" name="do_koszyka" value="Do koszyka" />
<input type="submit" name="pusty_koszyk" value="Pusty koszyk" />
<input type="submit" name="pokaz_koszyk" value="Pokaż koszyk" />
</form>
<?php
do_koszyka(true);
pusty_koszyk();
pokaz_koszyk();
?>
</body>
</html>
Plik akcesoria.php
<?php
include('php.php');
poczatek_sesji();
?>
<!doctype html>
<html>
<head>
<title>Testowanie skryptów PHP</title>
<meta charset="utf-8" />
</head>
<body>
<h1>Akcesoria</h1>
<p><a href="sklep.php">Sklep</a></p>
<p><a href="ksiazki.php">Książki</a></p>
<br />
<form action="akcesoria.php" method="post">
<p>
<label><input type="checkbox" name="towary[]"
value="000000Płyta główna" />
Płyta główna
</label>
, cena<input type="text" name="cena0" value="200" style="width:30px;" />
, ilość<input type="text" name="ile0" style="width:30px;" />
</p>
<p>
<label><input type="checkbox" name="towary[]"
value="000001Procesor" />
Procesor
</label>
, cena<input type="text" name="cena1" value="300" style="width:30px;" />
, ilość<input type="text" name="ile1" style="width:30px;" />
</p>
<p>
<label><input type="checkbox" name="towary[]"
value="000002Karta graficzna" />
Karta graficzna
</label>
, cena<input type="text" name="cena2" value="120" style="width:30px;" />
, lość<input type="text" name="ile2" style="width:30px;" />
</p>
<input type="submit" name="do_koszyka" value="Do koszyka" />
<input type="submit" name="pusty_koszyk" value="Pusty koszyk" />
<input type="submit" name="pokaz_koszyk" value="Pokaż koszyk" />
</form>
<?php
do_koszyka(false);
pusty_koszyk();
pokaz_koszyk();
?>
</body>
</html>
Problem polega na tym, że gdy dwa razy dodam produkt po 1 zamiast zsumować te produkty to dodaje jeden pod drugim po 1.
zamiast:
Akcesoria:
1. Płyta główna, cena: 200, ilość: 2
Wartość towarów w koszyku: 400
To otrzymuję:
Akcesoria:
1. Płyta główna, cena: 200, ilość: 1
2. Płyta główna, cena: 200, ilość: 1
Wartość towarów w koszyku: 400
Może teraz coś pomożecie