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