Erreur lorsque panier vide
Résolu/Fermé
A voir également:
- Erreur lorsque panier vide
- Erreur 0x80070643 - Accueil - Windows
- Supprimer page word vide - Guide
- Coeur vide ✓ - Forum Facebook
- Iptv erreur de lecture - Forum TV & Vidéo
- Erreur 0x80070643 Windows 10 : comment résoudre le problème de la mise à jour KB5001716 - Accueil - Windows
3 réponses
<?php
/**
class Panier
{
private $DB;
function __construct($db)
{
$this->DB = $db;
if (!isset($_SESSION))
{
session_start();
}
if (!isset($_SESSION['panier']))
{
$_SESSION['panier'] = array();
}
if(isset($_GET['delPanier']))
{
$this->del($_GET['delPanier']);
}
}
/* panier */
function getPanier()
{
return array_keys($_SESSION['panier']);
}
/* Quantité */
function getQte($key)
{
return $_SESSION['panier'][$key];
}
/* Calcul total commande */
function total()
{
$total = 0;
$liste = $this->getPanier();
if(empty($liste))
{
$produits= array();
}
else
{
$produits = $this->DB->query('SELECT id,price FROM products WHERE id IN('.implode(',',$liste).')');
}
foreach($produits as $produit)
{
$total += $produit->price * $_SESSION['panier'][$produit->id];
}
return $total;
}
function del($key)
{
if(isset($_SESSION['panier'][$key]))
{
unset($_SESSION['panier'][$key]);
}
}
}
/**
- Panier
- /
class Panier
{
private $DB;
function __construct($db)
{
$this->DB = $db;
if (!isset($_SESSION))
{
session_start();
}
if (!isset($_SESSION['panier']))
{
$_SESSION['panier'] = array();
}
if(isset($_GET['delPanier']))
{
$this->del($_GET['delPanier']);
}
}
/* panier */
function getPanier()
{
return array_keys($_SESSION['panier']);
}
/* Quantité */
function getQte($key)
{
return $_SESSION['panier'][$key];
}
/* Calcul total commande */
function total()
{
$total = 0;
$liste = $this->getPanier();
if(empty($liste))
{
$produits= array();
}
else
{
$produits = $this->DB->query('SELECT id,price FROM products WHERE id IN('.implode(',',$liste).')');
}
foreach($produits as $produit)
{
$total += $produit->price * $_SESSION['panier'][$produit->id];
}
return $total;
}
function del($key)
{
if(isset($_SESSION['panier'][$key]))
{
unset($_SESSION['panier'][$key]);
}
}
}
<?php
/**
class Db{
private $host ='localhost';
private $name='eshop';
private $user="root";
private $pass='';
private $connexion;
function __construct($host=null,$name=null,$user=null,$pass=null){
if($host != null){
$this->host = $host;
$this->name = $name;
$this->user = $user;
$this->pass = $pass;
}
try{
$this->connexion = new PDO('mysql:host='.$this->host.';dbname='.$this->name,
$this->user,$this->pass,array(
PDO::MYSQL_ATTR_INIT_COMMAND =>'SET NAMES UTF8',
PDO::ATTR_ERRMODE => PDO::ERRMODE_WARNING
));
}catch (PDOException $e){
echo 'Erreur : Impossible de se connecter à la base de données !';die();
}
}
/* requête */
public function query($sql , $data=array()){
$req = $this->connexion->prepare($sql);
$req->execute($data);
return $req->fetchAll(PDO::FETCH_OBJ);
}
public function insert($sql , $data=array()){
$req = $this->connexion->prepare($sql);
$req->execute($data);
}
}
/**
- Gestion de la base de données
- /
class Db{
private $host ='localhost';
private $name='eshop';
private $user="root";
private $pass='';
private $connexion;
function __construct($host=null,$name=null,$user=null,$pass=null){
if($host != null){
$this->host = $host;
$this->name = $name;
$this->user = $user;
$this->pass = $pass;
}
try{
$this->connexion = new PDO('mysql:host='.$this->host.';dbname='.$this->name,
$this->user,$this->pass,array(
PDO::MYSQL_ATTR_INIT_COMMAND =>'SET NAMES UTF8',
PDO::ATTR_ERRMODE => PDO::ERRMODE_WARNING
));
}catch (PDOException $e){
echo 'Erreur : Impossible de se connecter à la base de données !';die();
}
}
/* requête */
public function query($sql , $data=array()){
$req = $this->connexion->prepare($sql);
$req->execute($data);
return $req->fetchAll(PDO::FETCH_OBJ);
}
public function insert($sql , $data=array()){
$req = $this->connexion->prepare($sql);
$req->execute($data);
}
}
Utilisateur anonyme
7 avril 2019 à 14:44
7 avril 2019 à 14:44
Bonjour
Regarde ta requête :
Que devient-elle quand le panier est vide ? Il y a un
Avant d'exécuter la requête, teste $items.
Regarde ta requête :
$produits = $DB->query('SELECT * FROM products WHERE id in ('.$items.') ');
Que devient-elle quand le panier est vide ? Il y a un
IN(), ce qui n'est pas correct. Il faut qu'il y ait quelque chose dans le IN
Avant d'exécuter la requête, teste $items.