From fb75702a2a1383602b719deb51172d80615e6004 Mon Sep 17 00:00:00 2001
From: vautrin33u <vautrin33u@etu.univ-lorraine.fr>
Date: Tue, 21 Dec 2021 19:42:11 +0100
Subject: [PATCH] ajout page panier
---
GestionUtilisateur.php | 2 +-
Requete.php | 9 +++---
Service.php | 65 +++++++++++++++++++++++++++++++-----------
panier.php | 35 ++++++++++++++++++-----
recettes.js | 6 ++--
5 files changed, 84 insertions(+), 33 deletions(-)
diff --git a/GestionUtilisateur.php b/GestionUtilisateur.php
index cc6cd3b..7699705 100644
--- a/GestionUtilisateur.php
+++ b/GestionUtilisateur.php
@@ -43,7 +43,7 @@ function realiseConnexion ($json){
$favs = $mysqli->query("SELECT p.recette_id FROM utilisateurs u, panier p WHERE u.user_id = p.user_id AND u.user_id = {$resultat['user_id']}");
while($col = mysqli_fetch_assoc($favs)) {
- $resultats[] = $col;
+ $resultats[] = $col['recette_id'];
}
$_SESSION['panier'] = $resultats;
diff --git a/Requete.php b/Requete.php
index c4002a5..b6371f2 100644
--- a/Requete.php
+++ b/Requete.php
@@ -1,9 +1,7 @@
<?php
session_start();
echo $_SESSION['id'];
- echo '<pre>';
- var_dump($_SESSION['panier']);
- echo '</pre>';
+
?>
@@ -14,6 +12,7 @@
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<script type="text/javascript" src="suggestion.js"> </script>
<script type="text/javascript" src="recettes.js"> </script>
+ <link href="recettes.css" rel="stylesheet">
</head>
@@ -53,7 +52,7 @@
echo "<input type='submit' name='connexion' value='Connexion'/>";
echo "<input type='submit' name='inscription' value='Inscription'/>";
}
- echo "<input type='submit' name='panier' value='Votre panier'/> </p>";
+ echo "<input type='submit' name='panier' id='panier' value='Votre panier'/>";
?>
</form>
@@ -67,7 +66,7 @@
Sélectionner :
- <label for='categorie'></label><select name='categorie' id='categorie' onclick="optionsCategorie()" >
+ <label for='categorie'></label><select name='categorie' id='categorie' onchange="optionsCategorie()" >
<option value='Aliment'></option>
<option value='Aliment'>Aliment</option>
</select>
diff --git a/Service.php b/Service.php
index 2138162..2099124 100644
--- a/Service.php
+++ b/Service.php
@@ -50,33 +50,57 @@ function loadImage (string $nom){
}
}
}
-
-// A MODIFIER
-function getPanier (string $req){
- $requete = "SELECT DISTINCT FROM recettes r, ingredientsderecettes ing WHERE ing.idBoisson = r.id AND ing.nomIngredient LIKE '{$req}'";
- echo queryDBB($requete);
+/**
+ * Récupère le contenu du panier d'un utilisateur
+ */
+function getPanier (){
+ if (isset($_SESSION['id'])){ // si connecté
+ $requete = "select r.id, r.titre, r.preparation, r.ingredients from recettes r, panier p where p.recette_id = r.id AND p.user_id = {$_SESSION['id']}";
+ echo queryDBB($requete);
+ }else{
+ $requete = "select id, titre, preparation, ingredients from recettes where ";
+ for ($i = 0; $i < count($_SESSION['panier']); $i++) {
+ if ($i < count($_SESSION['panier']) -1){
+ $requete .= "id = ". $_SESSION['panier'][$i]." OR ";
+ }else{
+ $requete .= "id = ". $_SESSION['panier'][$i];
+ }
+ }
+ echo queryDBB($requete);
+ }
}
function addToCart ($req){
- $mysqli= new mysqli('127.0.0.1', 'root', '', 'Boissons') or die("Erreur : tables inaccessibles");
- $recette_id = mysqli_real_escape_string ($mysqli, $req);
- $user_id = mysqli_real_escape_string($mysqli, $_SESSION['id']);
- $requete = "INSERT INTO panier(user_id, recette_id) VALUES ({$user_id}, {$recette_id})";
- $mysqli->query($requete);
- $mysqli->close();
+ if (isset($_SESSION['id'])){ // Si un utilisateur est identifié
+
+ $mysqli= new mysqli('127.0.0.1', 'root', '', 'Boissons') or die("Erreur : tables inaccessibles");
+ $recette_id = mysqli_real_escape_string ($mysqli, $req);
+ $user_id = mysqli_real_escape_string($mysqli, $_SESSION['id']);
+ $requete = "INSERT INTO panier(user_id, recette_id) VALUES ({$user_id}, {$recette_id})";
+ $mysqli->query($requete);
+ $mysqli->close();
+ }
+ $_SESSION['panier'][] = $req;
}
function removeFromCart ($req){
- $mysqli= new mysqli('127.0.0.1', 'root', '', 'Boissons') or die("Erreur : tables inaccessibles");
- $recette_id = mysqli_real_escape_string ($mysqli, $req);
- $user_id = mysqli_real_escape_string($mysqli, $_SESSION['id']);
- $requete = "DELETE FROM panier WHERE user_id = {$user_id} AND recette_id = {$recette_id}";
- $mysqli->query($requete);
- $mysqli->close();
+ if (isset($_SESSION['id'])){ // Si un utilisateur est identifié
+
+ $mysqli= new mysqli('127.0.0.1', 'root', '', 'Boissons') or die("Erreur : tables inaccessibles");
+ $recette_id = mysqli_real_escape_string ($mysqli, $req);
+ $user_id = mysqli_real_escape_string($mysqli, $_SESSION['id']);
+ $requete = "DELETE FROM panier WHERE user_id = {$user_id} AND recette_id = {$recette_id}";
+ $mysqli->query($requete);
+ $mysqli->close();
+ }
+ $delete = array($req);
+ $temp = array_values(array_diff($_SESSION['panier'], $delete));
+ $_SESSION['panier'] = $temp;
}
+// Gestion des requetes json
$in = file_get_contents('php://input');
$decoded = json_decode($in, true);
@@ -98,6 +122,7 @@ if (isset($decoded['images'])){
loadImage($decoded['images']);
unset($decoded['images']);
}
+// Requêtes concernant le panier
if (isset($decoded['panier'])){
if (isset($decoded['panier'])){
if ($decoded['panier'] == 'ajouter'){
@@ -106,7 +131,13 @@ if (isset($decoded['panier'])){
if ($decoded['panier'] == 'retirer'){
removeFromCart($decoded['recette_id']);
}
+ if ($decoded['panier'] == 'get'){
+ getPanier();
+ }
+
}
}
+
+
?>
\ No newline at end of file
diff --git a/panier.php b/panier.php
index 5e370c6..444a5c9 100644
--- a/panier.php
+++ b/panier.php
@@ -1,5 +1,25 @@
<?php
session_start();
+
+ echo '<pre>';
+ var_dump($_SESSION['panier']);
+ $temp = $_SESSION['panier'];
+
+ for ($i = 0; $i < count($temp); $i++) {
+ echo $temp[$i];
+ }
+
+ $requete = "select id, titre, preparation, ingredients from recettes where ";
+ for ($i = 0; $i < count($_SESSION['panier']); $i++) {
+ if ($i < count($_SESSION['panier']) -1){
+ $requete .= "id = ". $_SESSION['panier'][$i]." OR ";
+ }else{
+ $requete .= "id = ". $_SESSION['panier'][$i];
+ }
+ }
+ echo $requete;
+ echo '</pre>';
+
?>
@@ -8,6 +28,8 @@
<head>
<title>Votre panier</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <script type="text/javascript" src="panier.js"> </script>
+
</head>
@@ -28,8 +50,6 @@
}
if (isset($_POST['home'])){
- $_SESSION = array();
- session_destroy();
header("location:Requete.php");
}
@@ -47,9 +67,9 @@
<?php
if (isset($_SESSION['pseudo'])){
$pseudonyme = ucfirst(strtolower($_SESSION['pseudo']));
- echo "<p id='bienvenue'> Bienvenue ".$pseudonyme." ";
- echo "<input type='submit' name='deconnecter' value='Déconnexion'/> </p>";
- echo "<input type='submit' name='panier' value='Votre panier'/> </p>";
+ echo "<p id='bienvenue'> Bienvenue ".$pseudonyme."</p>";
+ echo "<input type='submit' name='deconnecter' value='Déconnexion'/> ";
+ //echo "<input type='submit' name='panier' value='Votre panier'/> ";
}else{
echo "<input type='submit' name='connexion' value='Connexion'/>";
@@ -61,8 +81,9 @@
</form>
</div>
- <div id='panier'>
- <p1> Votre panier </p1>
+ <h1> Votre panier </h1>
+ <div id='panierClient'>
+
</div>
diff --git a/recettes.js b/recettes.js
index 11eeb96..fe11ef9 100644
--- a/recettes.js
+++ b/recettes.js
@@ -30,8 +30,8 @@ function ajoutFormulaire(parent, recette){
// Vérification des résultats
xhr.onreadystatechange = function(){
if (xhr.readyState === 4 && xhr.status === 200){
- //let resultat = xhr.response;
- //console.log(resultat);
+ let resultat = xhr.response;
+ console.log(resultat);
cancel.disabled = false;
add.disabled = true;
}
@@ -60,7 +60,7 @@ function ajoutFormulaire(parent, recette){
// Vérification des résultats
xhr.onreadystatechange = function(){
if (xhr.readyState === 4 && xhr.status === 200){
- //let resultat = JSON.parse(xhr.response);
+ let resultat = JSON.parse(xhr.response);
cancel.disabled = true;
add.disabled = false;
--
GitLab