Lid |
|
Hallo,
Ik gebruik onderstaand script voor een winkelwagensysteem.
Op een bepaalde pagina kan men in zijn winkelwagen kijken, en dat werkt prima, maar...
Er staat de volgende warning in de code : Invalid argument supplied for foreach()
Ik heb al gezocht, en lees dat het er aan moet liggen dat de uit te lezen string geen array is.
Volgens mij is hij dat wel, waar gaat het dan fout?
De functie voor toevoegen cart:
function addCart($aantal, $artikel) {
if (!isset($aantal) || !is_numeric($aantal) || !isset($artikel) || !is_numeric($artikel)) { exit(); }
// Controleren of er al inhoud is op de winkelwagen
if (empty($_SESSION['cart'])){
$_SESSION['cart'][] = array("aantal" => $aantal, "artikel" => $artikel);
} else {
$add = TRUE;
foreach($_SESSION['cart'] as $index=>$inhoud){
if ($inhoud['artikel'] == $artikel) { // Product al in de winkelwagen, dus aantal ophogen
$_SESSION['cart'][$index]['aantal'] = $_SESSION['cart'][$index]['aantal'] + $aantal;
$add = FALSE;
}
}
if ($add) { // Niet aanwezig, dus toevoegen
$_SESSION['cart'][] = array("aantal" => $aantal, "artikel" => $artikel);
}
}
//return (print_r($_SESSION['cart']));
}
function addCart($aantal, $artikel) { // Controleren of er al inhoud is op de winkelwagen if (empty($_SESSION['cart'])){ $_SESSION['cart'][] = array("aantal" => $aantal, "artikel" => $artikel); } else { $add = TRUE; foreach($_SESSION['cart'] as $index=>$inhoud){ if ($inhoud['artikel'] == $artikel) { // Product al in de winkelwagen, dus aantal ophogen $_SESSION['cart'][$index]['aantal'] = $_SESSION['cart'][$index]['aantal'] + $aantal; $add = FALSE; } } if ($add) { // Niet aanwezig, dus toevoegen $_SESSION['cart'][] = array("aantal" => $aantal, "artikel" => $artikel); } } //return (print_r($_SESSION['cart'])); }
En het stukje waarmee ik de $_SESSION['cart'] uit lees om weer te geven:
foreach($_SESSION['cart'] as $index=>$product) {
$query = mysql_query("SELECT naam, prijs, actieprijs, btw FROM artikelen WHERE id = '".$product['artikel']."'");
$result = mysql_fetch_array($query);
$query2 = mysql_query("SELECT percentage FROM btw WHERE id = '".$result['btw']."'");
$result2 = mysql_fetch_array($query2);
if ($result['actieprijs'] > 0) { $prijs = ($result['actieprijs'] / 100) * (100 + $result2['percentage']); }
else { $prijs = ($result['prijs'] / 100) * (100 + $result2['percentage']); }
?>
<tr>
<td>
<a href="index.php?pagina=cart&verwijder=<? echo $product['artikel']; ?>"><img src="./image/verwijder_klein.png" border="0" alt="<? echo LANG_VERWIJDER; ?>" title="<? echo LANG_VERWIJDER; ?>" /></a>
</td>
<td align="center">
<? echo $product['aantal']; ?>
</td>
<td>
<a href="index.php?pagina=shop_artikel_detail&id=<? echo $product['artikel']; ?>"><? echo $result['naam']; ?></a>
</td>
<td align="center">
<? echo number_format($prijs, 2); ?>
</td>
<td align="center">
<? $prijs2 = $product['aantal'] * number_format($prijs, 2);
echo number_format($prijs2, 2);
$totaalbedrag = $totaalbedrag + ($product['aantal'] * number_format($prijs, 2));
?>
</td>
</tr>
<? } ?>
foreach($_SESSION['cart'] as $index=>$product) { $query = mysql_query("SELECT naam, prijs, actieprijs, btw FROM artikelen WHERE id = '".$product['artikel']."'"); $result = mysql_fetch_array($query); $query2 = mysql_query("SELECT percentage FROM btw WHERE id = '".$result['btw']."'"); $result2 = mysql_fetch_array($query2); if ($result['actieprijs'] > 0) { $prijs = ($result['actieprijs'] / 100) * (100 + $result2['percentage']); } else { $prijs = ($result['prijs'] / 100) * (100 + $result2['percentage']); } ?> <tr> <td> <a href="index.php?pagina=cart&verwijder= <? echo $product['artikel']; ?>"><img src="./image/verwijder_klein.png" border="0" alt=" <? echo LANG_VERWIJDER ; ?>" title=" <? echo LANG_VERWIJDER ; ?>" /></a> </td> <td align="center"> <? echo $product['aantal']; ?> </td> <td> <a href="index.php?pagina=shop_artikel_detail&id= <? echo $product['artikel']; ?>"> <? echo $result['naam']; ?></a> </td> <td align="center"> </td> <td align="center"> $totaalbedrag = $totaalbedrag + ($product['aantal'] * number_format($prijs, 2)); ?> </td> </tr> <? } ?>
Hulp wordt zeer gewaardeerd, alvast bedankt!
|