Witam mam następujący problem:
do koszyka moge dodawać dowolną ilość produktów
lecz w tabeli
produktyzamowienia zapisuje się tylko ostatnio dodany produkt może jest coś nie tak z pętlą while? Jeśli ktoś wie co w tym skrypcie jest nie tak to prosze o pomoc.
skrypt koszyka
<?php
function atb($id)
{
if(!isSet($_SESSION['koszyk'])){ $_SESSION['koszyk'] = array(); }
if(!makeDBConnection()){
return false;
}
$query = "SELECT COUNT(*) FROM produkty WHERE id=$id";
//echo("Odrzucone zapytanie: funkcja showItem: $query");
return false;
}
if($row[0] <> 0){
if(isSet($_SESSION['koszyk'][$id])){ $_SESSION['koszyk'][$id]++;
}
else{
$_SESSION['koszyk'][$id] = 1;
}
return true;
}
else{
//echo("Brak produktu o id=$id");
return false;
}
}
else{
return false;
}
}
function showBasket()
{
if(!makeDBConnection()){
return false;
}
if(!isSet($_SESSION['koszyk'])){ $_SESSION['koszyk'] = array(); }
if(count($_SESSION['koszyk']) < 1
){ echo("Koszyk jest pusty"); return true;
}
$ids = "";
foreach($_SESSION['koszyk'] as $key => $val){
if($ids == ''){
$ids = $key;
}
else{
$ids .= ", $key";
}
}
$query = "SELECT Id, `Nazwa`, Cena FROM produkty WHERE id IN($ids) ";
$query .= "ORDER BY `Nazwa`";
//echo("Odrzucone zapytanie: funkcja showItem: $query");
return false;
}
echo("<form action='main.php' method='post'>"); echo("<input type='hidden' name='action' value='modifybasket'>"); echo("<table border='1' bgcolor=#87CEFA align='center'>"); echo("<tr><td colspan='4' bgcolor=#FF0000 align='center'>Zawartość koszyka</td></tr>"); echo("<tr><td width='60%'>Produkt</td><td>Cena</td><td>Ilość</td>"); echo("<td>Wartość</td></tr>");
$suma = 0;
echo("<td>$row[1]</td>"); echo("<td>$row[2]</td>"); $ile = $_SESSION['koszyk'][$row[0]];
$wartosc = $_SESSION['koszyk'][$row[0]] * $row[2];
$wartosc = sprintf("%01.2f", $wartosc); $suma += $wartosc;
echo("<td><input type='text' name='$row[0]' value='$ile' size='2'/></td>"); echo("<td align='right'>$wartosc</td>"); }
echo("<tr><td align='left' colspan='3'>Całkowita wartość</td>"); echo("<td align='right'>$suma</td></tr>");
echo("<tr><td align='right' colspan='4'><input type='submit'"); echo("value='Zapisz zmiany'></td></tr>");
echo("<tr><td align='right' colspan='4'><a href='main.php?action="); echo("checkout'><h3>Do kasy</h3></td></tr>");
}
function modifyBasket()
{
foreach($_SESSION['koszyk'] as $key => $val){
if(!isSet($_POST[$key])){ unset($_SESSION['koszyk'][$key]); }
else if($_POST[$key] < 1){
unset($_SESSION['koszyk'][$key]); }
else{
$_SESSION['koszyk'][$key] = $_POST[$key];
}
}
}
function checkout()
{
if(!isSet($_SESSION['UserId'])){ echo("<h3 align='center'> Aby złożyć zamówienie muszisz być "); echo("<a href='main.php?action=slf'> zalogowany</a>.<br>"); echo("Jeśli nie masz jeszcze konta w naszym serwisie, "); echo("<a href='main.php?action=srf'>załóż je teraz</a>.<h3>"); return;
}
if(!isSet($_SESSION['koszyk'])){ $_SESSION['koszyk'] = array(); }
if(count($_SESSION['koszyk']) < 1
){ echo("<p align='center'>Koszyk jest pusty</p>"); return true;
}
if(!makeDBConnection()){
echo("<h3 align='center'>Wystąpił błąd serwera.</h3>"); return;
}
$ids = "";
foreach($_SESSION['koszyk'] as $key => $val){
if($ids == ''){
$ids = $key;
}
else{
$ids .= ", $key";
}
}
$query = "SELECT Id, `Nazwa`, Cena FROM produkty WHERE id IN($ids) ";
$query .= "ORDER BY `Nazwa`";
//echo("Odrzucone zapytanie: funkcja showItem: $query");
echo("<h3 align='center'>Wystąpił błąd serwera.</h3>"); return;
}
echo("<table border='0'bgcolor=#F8F8FF align='center'>"); echo("<tr><td colspan='4' align='center'>Podsumowanie zamówienia"); echo("<tr><td width='60%'>Tytuł</td><td>Cena</td><td>Ilość</td>"); echo("<td>Wartość</td></tr>");
$suma = 0;
echo("<td>$row[1]</td>"); echo("<td>$row[2]</td>"); $ile = $_SESSION['koszyk'][$row[0]];
$wartosc = $_SESSION['koszyk'][$row[0]] * $row[2];
$wartosc = sprintf("%01.2f", $wartosc); $suma += $wartosc;
echo("<td align='right'>$ile</td>"); echo("<td align='right'>$wartosc</td>"); }
echo("<tr><td colspan='4' align='center'><hr></td></tr>");
echo("<tr><td align='left' colspan='3'>Całkowita wartość</td>"); echo("<td align='right'>$suma</td></tr>");
echo("<tr><td align='right' colspan='4'><a href='main.php?action="); echo("saveorder'><h3>Złóż zamówienie</h3></a></td></tr>");
}
function saveorder()
{
if(!isSet($_SESSION['UserId'])){ echo("<h3 align='center'> Aby złożyć zamówienie muszisz być "); echo("<a href='main.php?action=slf'> zalogowany</a>.<br>"); echo("Jeśli nie masz jeszcze konta w naszym serwisie, "); echo("<a href='main.php?action=srf'>załóż je teraz</a>.<h3>"); return;
}
if(!isSet($_SESSION['koszyk'])){ $_SESSION['koszyk'] = array(); }
if(count($_SESSION['koszyk']) < 1
){ echo("<p align='center'>Koszyk jest pusty</p>"); return;
}
if(!makeDBConnection()){
echo("<h3 align='center'>Wystąpił błąd serwera.</h3>"); return;
}
$ids = "";
foreach($_SESSION['koszyk'] as $key => $val){
if($ids == ''){
$ids = $key;
}
else{
$ids .= ", $key";
}
}
$userId = $_SESSION['UserId'];
$query = "INSERT INTO Zamowienia VALUES(NULL, $userId, NOW(), NULL, 0)";
echo("<h3 align='center'>Wystąpił błąd serwera.</h3>"); return;
}
echo("<h3 align='center'>Wystąpił błąd serwera.</h3>"); return;
}
$query = "SELECT Id, Cena FROM produkty WHERE Id IN($ids) ";
//echo("Odrzucone zapytanie: funkcja saveOrder: $query");
echo("<h3 align='center'>Wystąpił błąd serwera.</h3>"); return;
}
$id = $row[0];
$cena = $row[1];
$ile = $_SESSION['koszyk'][$row[0]];
$query = "INSERT INTO produktyzamowienia VALUES($id, $orderId, ";
$query .= "$ile, $cena)";
}
unset($_SESSION['koszyk']); echo("<p align='center'>Zamówienie zostało zapisane w systemie.</p>"); echo("<p align='center'>Idnetyfikator zamówienia: $orderId.</p>"); }
?>