PHP beginner |
|
Hallo allen,
Ik heb nu een class opgezet voor m'n winkelwagen alleen loop nog tegen een probleem aan:
Als ik een product toevoeg met bijvoorbeeld id 6 en vervolgens probeer ik dit nog een keer verhoogt hij hem netjes zoals het hoort. Als ik nu daarna product met bijvoorbeeld id 7 en vervolgens probeer ik dit nog een keer, dan verhoogt hij hem niet zoals hij eigenlijk wel zou moeten doen maar voegt hij hem opnieuw toe.
Dit is mijn class, heb nu al een hele tijd zitten zoeken maar ik kan het probleem niet vinden. Er zitten nu wel wat extra dingen in maar kijk daar maar niet naar want delete en de debug functie werkt gewoon. Hoop dat iemand van jullie het ziet bvd dank.
<?php
class ShoppingCar
{
var $input;
// Dit is de consturctor die aangeeft aan de class dat $input een array is.
function ShoppingCar()
{
$this->input = $_SESSION['shop'];
}
// Dit is de functie die zoekt naar naar het product_id en deze terug stuurd.
function findProduct($productId)
{
for ($i=0; $i < count($this->input); $i++)
{
if ($this->input[$i]['id'] == $productId)
{
return $i;
}
return -1;
}
}
// Doormiddel van deze functie word er een product toegevoegd.
function addProduct($productId,$productName,$productAantal)
{
// Hier bekijkt hij of het product id al in de array bestaat.
$product = $this->findProduct($productId);
// In de functie FindProduct geeft hij of het productId mee terug of -1,
// als hij groter is dan -1 bestaat hij al.
if ($product > -1)
{
if ($this->input[$product]['name'] == $productName)
{
$this->input[$product]['aantal'] += $productAantal;
} else {
echo 'De ingevoerde productid komt al voor inde array maar de namen komen niet met elkaar overeen.';
}
// Beëindigd de functie.
return;
}
// Product toevoegen aan de array.
$this->input[] = array('id' => $productId,
'name' => $productName,
'aantal' => $productAantal);
}
// Doormiddel van deze functie word en één product verwijderd.
function deleteProduct($productId)
{
// Word gezocht naar het product in de array, als hij niet bestaat is hij gelijk aan -1.
$product = $this->findProduct($productId);
if ($product == -1)
{
// Als hij gelijk is aan -1 functie beëndigen.
return;
}
// Als hij wel bestaat verwijderen uit de array.
unset($this->input[$product]);
}
// Doormiddel van deze functie word de array in de class weer omgezet naar een sessie
function setSession()
{
$_SESSION['shop'] = $this->input;
}
// Debug methode die alles in de array weergeeft.
function debug()
{
echo'<code><pre>';
print_r($this->input);
echo'</pre></code>';
}
}
?>
<?php class ShoppingCar { var $input; // Dit is de consturctor die aangeeft aan de class dat $input een array is. function ShoppingCar() { $this->input = $_SESSION['shop']; } // Dit is de functie die zoekt naar naar het product_id en deze terug stuurd. function findProduct($productId) { for ($i=0; $i < count($this->input); $i++) { if ($this->input[$i]['id'] == $productId) { return $i; } return -1; } } // Doormiddel van deze functie word er een product toegevoegd. function addProduct($productId,$productName,$productAantal) { // Hier bekijkt hij of het product id al in de array bestaat. $product = $this->findProduct($productId); // In de functie FindProduct geeft hij of het productId mee terug of -1, // als hij groter is dan -1 bestaat hij al. if ($product > -1) { if ($this->input[$product]['name'] == $productName) { $this->input[$product]['aantal'] += $productAantal; } else { echo 'De ingevoerde productid komt al voor inde array maar de namen komen niet met elkaar overeen.'; } // Beëindigd de functie. return; } // Product toevoegen aan de array. $this->input[] = array('id' => $productId, 'name' => $productName, 'aantal' => $productAantal); } // Doormiddel van deze functie word en één product verwijderd. function deleteProduct($productId) { // Word gezocht naar het product in de array, als hij niet bestaat is hij gelijk aan -1. $product = $this->findProduct($productId); if ($product == -1) { // Als hij gelijk is aan -1 functie beëndigen. return; } // Als hij wel bestaat verwijderen uit de array. unset($this->input[$product]); } // Doormiddel van deze functie word de array in de class weer omgezet naar een sessie function setSession() { $_SESSION['shop'] = $this->input; } // Debug methode die alles in de array weergeeft. function debug() { } } ?>
|