Come da titolo, ho il problema che quando cerco di aggiungere un prodotto al carrello, mi appare una finestra con messaggio che e' stato aggiunto, ma in realta' nella tabella del cart non c'e'.
Mi da anche il seguente errore: Fatal error: Cannot use object of type stdClass as array .
La linea di codice e': <td><?php echo $value['item_name']; ?></td>
Vi posto tutto il codice che si trova nel file reserve.php :
html code
Ho provato a far print "<pre>"; var_dump($row); exit; dopo questa linea di codice: foreach ($_SESSION['cart'] as $key => $value) { e mi vien fuori la tabella con un text box su con dentro scritto NULL. Cosa significa?
Prima pero' ho provato a cambiare $value['item_name'] con $value->item_name , e mi vien venuto il seguente errore:
Notice: Undefined property: stdClass::$item_name in
Mi aiutate a capire come correggere uesto codice per favore?Grazie in anticipo.
Mi da anche il seguente errore: Fatal error: Cannot use object of type stdClass as array .
La linea di codice e': <td><?php echo $value['item_name']; ?></td>
Vi posto tutto il codice che si trova nel file reserve.php :
Codice:
<?php
session_start();
ini_set('display_errors', 1);
$connect = mysqli_connect('127.0.0.1', 'root', '***********', 'Community Garden List');
if (isset($_POST['add'])) {
if (isset($_SESSION['cart'])) {
$item_array_id = array_column($_SESSION['cart'], 'product_id');
if (!in_array($_GET['id'], $item_array_id)) {
$count = count($_SESSION['cart']);
$item_array = array(
'product_id' => $_GET['id'],
'item_name' => $_POST['hidden_name'],
'product_price' => $_POST['hidden_price'],
'item_quantity' => $_POST['quantity'],
);
$_SESSION['cart'][$count] = $item_array;
echo '<script>window.location="reserve.php"</script>';
} else {
echo '<script>alert("Product is already Added to Cart")</script>';
echo '<script>window.location="reserve.php"</script>';
}
} else {
$item_array = array(
'product_id' => $_GET['id'],
'item_name' => $_POST['hidden_name'],
'product_price' => $_POST['hidden_price'],
'item_quantity' => $_POST['quantity'],
);
$_SESSION['cart'][0] = $item_array;
}
}
if (isset($_GET['action'])) {
if ($_GET['action'] == 'delete') {
foreach ($_SESSION['cart'] as $keys => $value) {
if ($value['product_id'] == $_GET['id']) {
unset($_SESSION['cart'][$keys]);
echo '<script>alert("Product has been Removed...!")</script>';
echo '<script>window.location="reserve.php"</script>';
}
}
}
}
?>
?>
Codice:
<?php
$query = 'SELECT * FROM product ORDER BY serial ASC';
$result = mysqli_query($connect, $query);
if (mysqli_num_rows($result) > 0) {
while ($row = mysqli_fetch_array($result)) {
?>
<div class="col-md-4">
<form method="post" action="reserve.php?action=add&id='.$row['id'].">
<div style="border: 1px solid #eaeaec; margin: -1px 19px 3px -1px; box-shadow: 0 1px 2px rgba(0,0,0,0.05); padding:10px;" align="center">
<img src="<?php echo $row['image']; ?>" class="img-responsive" style="width:100%;>
<h5 class="text-info"><?php echo $row['pname']; ?></h5>
<h5 class="text-danger">€ <?php echo $row['price']; ?></h5>
<h5 class="text-info"><?php echo $row['pdescription']; ?></h5>
<input type="text" name="quantity" class="form-control" value="1">
<input type="hidden" name="hidden_name" value="<?php echo $row['pname']; ?>">
<input type="hidden" name="hidden_price" value="<?php echo $row['price']; ?>">
<input type="hidden" name="hidden_pdescription" value="<?php echo $row['pdescription']; ?>">
<input type="submit" name="add" style="margin-top:5px;" class="btn btn-success" value="Add to Bag">
</div>
</form>
</div>
<?php
}
}
?>
<div style="clear: both"></div>
<h3 class="title2">Shopping Cart Details</h3>
<div class="table-responsive">
<table class="table table-bordered">
<tr>
<th width="30%">Product Name</th>
<th width="10%">Quantity</th>
<th width="13%">Price Details</th>
<th width="10%">Total Price</th>
<th width="17%">Remove Item</th>
</tr>
<?php
if (!empty($_SESSION['cart'])) {
$total = 0;
foreach ($_SESSION['cart'] as $key => $value) {
?>
<tr>
<td><?php echo $value['item_name']; ?></td>
<td><?php echo $value['item_quantity']; ?></td>
<td>€ <?php echo $value['product_price']; ?></td>
<td>
€ <?php echo number_format($value['item_quantity'] * $value['product_price'], 2); ?></td>
<td><a href="reserve.php?action=delete&id=<?php echo $value['product_id']; ?>"><span
class="text-danger">Remove Item</span></a></td>
</tr>
<?php
$total = $total + ($value['item_quantity'] * $value['product_price']);
} ?>
<tr>
<td colspan="3" align="right">Total</td>
<th align="right">€ <?php echo number_format($total, 2); ?></th>
<td></td>
</tr>
<?php
}
?>
</table>
</div>
</div>
Ho provato a far print "<pre>"; var_dump($row); exit; dopo questa linea di codice: foreach ($_SESSION['cart'] as $key => $value) { e mi vien fuori la tabella con un text box su con dentro scritto NULL. Cosa significa?
Prima pero' ho provato a cambiare $value['item_name'] con $value->item_name , e mi vien venuto il seguente errore:
Notice: Undefined property: stdClass::$item_name in
Mi aiutate a capire come correggere uesto codice per favore?Grazie in anticipo.