it doesn't matter if I say:
if (isset($_POST['add_to_cart'])) {
$_SESSION['basket'] = array();
$_SESSION['basket'] = array_push($_SESSION['basket'], $row['broodjes_ID']);
}
or
if (isset($_POST['add_to_cart'])) {
$_SESSION['basket'] = array();
$_SESSION['basket'] = array_push($_SESSION['basket'], $row['broodjes_ID'], $row['broodnaam']);
}
my $_SESSION['basket']; always returns int 2 for some reason and this causes my cart to have the same item in it twice. hwo do I fix this. and also how do I make my cart remember what my user puts in the cart??
index.php
<!-- session_start(); geeft error a sessin has already started -->
<?php
error_reporting(E_ALL);
ini_set('display_errrors', '1');
?>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no" />
<meta name="description" content="" />
<meta name="author" content="" />
<title>Shop Homepage - Start Bootstrap Template</title>
<!-- Favicon-->
<link rel="icon" type="image/x-icon" href="assets/favicon.ico" />
<!-- Bootstrap icons-->
<link href="https://cdn.jsdelivr.net/npm/bootstrap-icons@1.5.0/font/bootstrap-icons.css" rel="stylesheet" />
<!-- Core theme CSS (includes Bootstrap)-->
<link href="css/styles.css" rel="stylesheet" />
<link href="css/stylecart.css" rel="stylesheet" />
<script src="js/scripts.js" async></script>
</head>
<style>
body {
font-family: Arial, Helvetica, sans-serif;
font-size: 20px;
}
#myBtn {
display: none;
position: fixed;
bottom: 20px;
right: 30px;
z-index: 99;
font-size: 18px;
border: none;
outline: none;
background-color: black;
color: white;
cursor: pointer;
padding: 25px;
border-radius: 50px;
}
#myBtn:hover {
background-color: #555;
}
</style>
<body>
<!-- Navigation-->
<?php include "navbar.php"?>
<?php if(isset($_SESSION['USER_ID'])){ ?>
<!-- Header-->
<header class="bg-dark py-5">
<div class="container px-4 px-lg-5 my-5">
<div class="text-center text-white"> <!--Het werkt -->
<h1 class="display-4 fw-bolder">Goedemorgen, <?php echo $_SESSION['USERNAME'];?></h1>
<p class="lead fw-normal text-white-50 mb-0">Shop in style</p>
</div>
</div>
</header>
<?php
} else {
?>
<!-- Header-->
<header class="bg-dark py-5">
<div class="container px-4 px-lg-5 my-5">
<div class="text-center text-white"> <!--het werkt-->
<h1 class="display-4 fw-bolder">Goedemorgen, Gast</h1>
<p class="lead fw-normal text-white-50 mb-0">Shop in style</p>
</div>
</div>
</header>
<?php } ?>
<!--miscchien dit toch in een whileloop gooien dat zal ook de code korter maken-->
<!-- Section-->
<button onclick="topFunction()" id="myBtn" title="Go to top">↑</button>
<?php
include "config.php";
$sql = 'SELECT * FROM broodjes';
$stmt = $conn->prepare($sql);
$stmt->execute();
$result = $stmt->get_result();
while($row = $result-> fetch_assoc()){
echo ' <section class="py-5">
<div class="container px-4 px-lg-5 mt-5">
<div class="row gx-4 gx-lg-5 row-cols-2 row-cols-md-3 row-cols-xl-4 justify-content-center">
<div class="col mb-5">
<div class="card h-100">
<!-- Product image dit kan later nog wel-->
<div class="fw-image">
<img class="card-img-top" src="https://dummyimage.com/450x300/dee2e6/6c757d.jpg" alt="..." />
</div>
<!-- Product details-->
<div class="card-body p-4">
<div class="text-center">
<div class="test1">
<input type="hidden" name="broodjes_ID" value=', $row['broodjes_ID'] , '/>
</div>
<!-- Product name-->
<div class="test3">
<input type="hidden" name="broodnaam" value=', $row['broodnaam'] , '/>
<h5 class="fw-bolder">'.$row['broodnaam']. '</h5>
</div>
<!-- Product price-->
<div class="test2">
<input type="hidden" name="broodnaam" value=', $row['prijs'] , '/>
<h3> Prijs: </h3> <h3 class="fw-price"> €'.$row['prijs']. '</h3><br>
</div>
<!--voorraad-->
'; if($row['voorraad'] == 0){
echo '
<h3 class="fw-voorraad" style="color: red;"> uitverkocht</h3><br>
'; }else{
echo '
Voorraad: '.$row['voorraad'].'<br>
</div>
</div>
<!-- Product actions-->
<form action="cart.php?broodjes_ID='. $row['broodjes_ID'].'" method="post" name="broodjes" value"<?php echo htmlentities(serialize($_SESSION["basket"])); ?>
<div class="card-footer p-4 pt-0 border-top-0 bg-transparent">
<div class="text-center"><button class="btn btn-outline-dark mt-auto shop-item-button" type="submit" name="add_to_cart">Add to cart</button></div>
</div>
</form>
'; }
echo '</div>
</div>
</div>
</div>
</section>';
if (isset($_POST['add_to_cart'])) {
$_SESSION['basket'] = array();
$_SESSION['basket'] = array_push($_SESSION['basket'], $row['broodjes_ID']);
}
}
?>
<!-- Footer-->
<?php include "footer.php";?>
<!-- Bootstrap core JS-->
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.1.3/dist/js/bootstrap.bundle.min.js"></script>
<!-- Core theme JS-->
<script src="js/scrolltotop.js"></script>
</body>
</html>
cart.php
<?php
session_start();
error_reporting(E_ALL);
ini_set('display_errrors', '1');
?>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no" />
<meta name="description" content="" />
<meta name="author" content="" />
<title>Cart</title>
<!-- Favicon-->
<link rel="icon" type="image/x-icon" href="assets/favicon.ico" />
<!-- Bootstrap icons-->
<link href="https://cdn.jsdelivr.net/npm/bootstrap-icons@1.5.0/font/bootstrap-icons.css" rel="stylesheet" />
<!-- Core theme CSS (includes Bootstrap)-->
<link href="css/styles.css" rel="stylesheet" />
<link href="css/stylecart.css" rel="stylesheet" />
<script src="js/scripts.js" async></script>
</head>
<style>
body {
font-size: 20px;
}
</style>
<body>
<a class="back" href="index.php"> class="bi bi-arrow-left-circle-fill bi-5x"></a>
<?php
include "config.php";
?>
<div class="text-center" style="font-size: 100px;">🛍</div>
<h2 class="text-center">Winkelmandje</h2><br>
<section class="container content-section">
<!-- <h2 class="section-header">CART</h2> -->
<div class="cart-row">
ITEM
PRICE
QUANTITY
</div>
<?php
$broodjes_ID = $_GET['broodjes_ID'];
var_dump($_SESSION['basket']);
if($_SESSION['basket'] > 0){
$sum = 0;
for($i = 0; $i<$_SESSION['basket']; $i++){
$sql = "SELECT broodjes_ID, broodnaam, prijs FROM broodjes WHERE broodjes_ID = ?";
$stmt = $conn->prepare($sql);
$stmt->bind_param("i", $broodjes_ID);
$stmt->execute();
$result = $stmt->get_result();
while($row = $result-> fetch_assoc()){
echo '<div class="cart-items">';
echo '<div class="cart-row">';
echo '<div class="cart-item cart-column">';
echo ''. $row['broodnaam'] . '';
echo '</div>';
echo ' €'. $row['prijs'] . '';
echo '</div>';
echo '</div>';
break;
$sum += $row['prijs'];
}
}
?>
<div class="cart-total">
class="cart-total-title">
€ <?php echo $sum;?>
</div>
<?php
}else{
echo 'mandje is leeg.';
?>
<div class="cart-total">
^__strong class="cart-total-title">Total
€ 0
</div>
<?php
}
?>
<div class="text-center">
<button class="btn btn-outline-primary" type="button"><a href="bestellen.php">PURCHASE</a></button>
</div>
</section>
</body
What I have tried:
I have tried for a few days a lot of different things to get this solved. Like looking what my $_SESSION returns. why it returns this and all that kind of stuff but I just don't understand why it's doing this