Panier en php
SHIRLEY
-
jordane45 Messages postés 38486 Date d'inscription Statut Modérateur Dernière intervention -
jordane45 Messages postés 38486 Date d'inscription Statut Modérateur Dernière intervention -
Bonjour,
j'ai créer un site e-commerce en php dur, j'ai créer une page produit.php avec tous mes produits visibles et un bouton ajouter au panier pour chaque produit; j ai aussi créer une page panier.php.
Cependant lorsque je clique sur "ajouter au panier", le navigateur me renvoi sur la page panier.php mais le panier reste vide.
Comment dois je faire svp??
mon code produit.php
code panier.php
EDIT : Ajout des balises de code
Merci beaucoup
j'ai créer un site e-commerce en php dur, j'ai créer une page produit.php avec tous mes produits visibles et un bouton ajouter au panier pour chaque produit; j ai aussi créer une page panier.php.
Cependant lorsque je clique sur "ajouter au panier", le navigateur me renvoi sur la page panier.php mais le panier reste vide.
Comment dois je faire svp??
mon code produit.php
<?php try { // connexion a la bdd $bdd= new PDO('mysql:host=localhost;dbname=letsShop;','root','root'); } catch(exception $e){ die('Erreur : '.$e->getMessage()); // s'il y a des erreurs } // si il y a bien un id, bien ecris dans l url et qu'il n'ya pas de txt dans l'url c bon et on le force a etre un entier avec intval // isset pour voir sil est ien defini // superieur a 0 pour qu'on est bien une valeur obligatoirement positive et non negativ -1 -2 if(isset($_GET['id']) AND intval($_GET['id']) >0){ // on recupere get id //echo 'ok'; $id=intval($_GET['id']); $req = $bdd->prepare('SELECT id_produit, titre_pdt, photo_pdt, designation_pdt, prix_pdt FROM produit WHERE id_produit=:id'); $req->execute(array( "id"=> $id )); if ($req->rowCount()>0) { // tant quon recupere un id un titre une photo... on les met dans un tableau row // puis les valeurs on les mets dans des variables idpdt, titrepdt..... while($row=$req->fetch()) { $idpdt= $row['id_produit']; $titrepdt = $row['titre_pdt']; $photo = $row['photo_pdt']; $designation = $row['designation_pdt']; $prix = $row['prix_pdt']; } }else{ echo 'erreur 404'; //erreur //echo 'erreur'; sinon on renvoie vers une page header location 404 } //boucle qui recupere toute les données de ma requete sql, de la bdd }else{ //echo 'erreur'; sinon on renvoie vers une page header location 404 echo 'erreur 404'; } $titre=$titrepdt; include 'header.php'; // $req = $bdd->query('SELECT id_produit, titre_pdt, photo_pdt, designation_pdt, prix_pdt FROM produit WHERE id_produit=$id');?> <!-- on demande les articles de la table produits --> <?php // while($row=$req->fetch()) { ?> <div class="container"> <div class="row"> <div class="col-md-4 mt-3 cat-fav"> <img class="card-img" src="<?php echo $photo;?>" alt="tshirt"> </div> <div class="col-md-4 mt-3 cat-fav"> <h3><?php echo $titrepdt ?></h3> <h3><?php echo $prix ?> €</h3> <p><?php echo $designation ?></p> <li class="list-inline-item"> <a href="panier.php" class="btn btn-info btn-rounded" id="panier">Ajouter au panier</a> </li> </div> </div> </div> <?php include 'footer.php'; ?>
code panier.php
<?php $titre='Panier'; include 'header.php'; $_SESSION['panier'] = array(); // Ça, c'est le contenant général de notre panier. On dois le subdiviser en compartiments avant d'y stocker quoique ce soit de manière organisée pour pouvoir trier son contenu et le manipuler. Là, on a 6 parties à créer pour les images, les produits, les quantités, les tailles et les prix. $_SESSION['panier']['id_produit'] = array(); $_SESSION['panier']['img_produit'] = array(); $_SESSION['panier']['name_produit'] = array(); // $_SESSION['panier']['qte_produit'] = array(); // $_SESSION['panier']['taille_produit'] = array(); $_SESSION['panier']['prix_produit'] = array(); ?> <link href="https://maxcdn.bootstrapcdn.com/font-awesome/4.7.0/css/font-awesome.min.css" rel="stylesheet" integrity="sha384-wvfXpqpZZVQGK6TAh5PVlGOfQNHSoD2xbE+QkPxCAFlNEevoEH3Sl0sibVcOQVnN" crossorigin="anonymous"> <section class="jumbotron text-center"> <div class="container"> <h1 class="jumbotron-heading">Let's Shop</h1> <h1 class="jumbotron-heading">Panier</h1> </div> </section> <div class="container mb-4"> <div class="row"> <div class="col-12"> <div class="table-responsive"> <table class="table table-striped"> <thead> <tr> <th scope="col"> IMAGE </th> <th scope="col"> PRODUIT </th> <!-- <th scope="col"> QUANTITE </th> <th scope="col"> TAILLE </th> --> <th scope="col" class="text-right"> PRIX </th> <th> </th> </tr> </thead> <?php $req = $bdd->query('SELECT * FROM panier'); ?> <?php while($row=$req->fetch()){ ?> <tbody> <tr> <td><?= $row['img_produit']; ?> </td> <td><?= $row['name_produit']; ?></td> <!-- <td><?= $row['qte_produit']; ?></td> <td><?= $row['taille_produit']; ?></td> --> <td class="text-right"> <?= number_format($row['prix_produit'],2,',','');?> €</td> <!--pour que les prix s'affichent au centimes près --> <td class="text-right"><button class="btn btn-sm btn-danger"><i class="fa fa-trash"></i> </button> </td> </tr> </tbody> <?php } ?> <tr> <td></td> <td><strong>Total</strong></td> <td><strong>€</strong></td> </tr> </table> </div> </div> <div class="col mb-2"> <div class="row"> <div class="col-sm-12 col-md-6"> <button class="btn btn-block btn-dark">Continue Shopping</button> </div> <div class="col-sm-12 col-md-6 text-right"> <button class="btn btn-block btn-dark text-uppercase">PAIEMENT</button> </div> </div> </div> </div> </div> <?php try { // connexion a la bdd $bdd= new PDO('mysql:host=localhost;dbname=letsShop;','root','root'); } catch(exception $e){ die('Erreur : '.$e->getMessage()); // s'il y a des erreurs } ?> <?php include 'footer.php'; ?>
EDIT : Ajout des balises de code
Merci beaucoup
A voir également:
- Panier en php
- Easy php - Télécharger - Divers Web & Internet
- Expert php pinterest - Télécharger - Langages
- Retrouver mon panier cdiscount - Forum Consommation & Internet
- Vider mon panier cdiscount - Forum Réseaux sociaux
- Alert php ✓ - Forum PHP
5 réponses
Bonjour,
Tu as utiliser un lien qui redirige vers la page panier.php .... sans lui dire quel est l'ID du produit à ajouter...
Tu pourrais lui passer l'id en variable GET par exemple
et donc dans ton code panier.. récupérer l' ID du produit à ajouter
Tu as utiliser un lien qui redirige vers la page panier.php .... sans lui dire quel est l'ID du produit à ajouter...
Tu pourrais lui passer l'id en variable GET par exemple
<a href="panier.php?id=<?php echo $idpdt?>"
et donc dans ton code panier.. récupérer l' ID du produit à ajouter
$id = !empty($_GET['id']) ? $_GET['id']: NULL;
Merci beaucoup!
mais ou est ce que je dois mettre cette ligne??
$id = !empty($_GET['id']) ? $_GET['id']: NULL;
mais ou est ce que je dois mettre cette ligne??
$id = !empty($_GET['id']) ? $_GET['id']: NULL;
Malgré la requête INSERT, une fois que je clique sur ajouter au panier, je suis renvoyer sur la page panier vierge..
Voici la requête que j'ai fait
EDIT : Ajout des balises de code (jordane)
Voici la requête que j'ai fait
<?php if (isset($_POST['photo_pdt']) AND isset($_POST['titre_pdt']) AND isset($_POST['prix_pdt'])){ if($_POST['id_pdt'] == $_POST['id_pdt']){ $requete = $bdd->prepare('INSERT INTO panier(photo_pdt, titre_pdt, prix_pdt) VALUES (:photo_pdt, :titre_pdt, :prix_pdt)'); $requete->execute(array( 'photo_pdt' => $_POST['photo_pdt'], 'titre_pdt' => $_POST['titre_pdt'], 'prix_pdt' => $_POST['prix_pdt'] )); }else { echo "Le panier est vide"; } }else { ERROR } ?>
EDIT : Ajout des balises de code (jordane)
Commence par gérer correctement les erreurs PDO
https://forums.commentcamarche.net/forum/affich-37584941-php-pdo-gerer-les-erreurs
Ainsi que les erreurs PHP :
https://forums.commentcamarche.net/forum/affich-37584947-php-gestion-des-erreurs-debogage-et-ecriture-du-code
Il faudrait également que tu nous repostes le code de ton formulaire d'ajout (en entier ! )
Et pour finir... lorsque tu postes du code sur le forum, tu dois utiliser les BALISES DE CODE.
explications disponibles ici: https://codes-sources.commentcamarche.net/faq/11288-poster-un-extrait-de-code
https://forums.commentcamarche.net/forum/affich-37584941-php-pdo-gerer-les-erreurs
Ainsi que les erreurs PHP :
https://forums.commentcamarche.net/forum/affich-37584947-php-gestion-des-erreurs-debogage-et-ecriture-du-code
Il faudrait également que tu nous repostes le code de ton formulaire d'ajout (en entier ! )
Et pour finir... lorsque tu postes du code sur le forum, tu dois utiliser les BALISES DE CODE.
explications disponibles ici: https://codes-sources.commentcamarche.net/faq/11288-poster-un-extrait-de-code
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question<?php $titre='Panier'; include 'header.php'; ?> <?php $idpdt = !empty($_POST['idpdt']) ? $_POST['idpdt']: NULL;?> <?php try { // connexion a la bdd $bdd= new PDO('mysql:host=localhost;dbname=letsShop;','root','root'); } catch(exception $e){ die('Erreur : '.$e->getMessage()); // s'il y a des erreurs } ?> <link href="https://maxcdn.bootstrapcdn.com/font-awesome/4.7.0/css/font-awesome.min.css" rel="stylesheet" integrity="sha384-wvfXpqpZZVQGK6TAh5PVlGOfQNHSoD2xbE+QkPxCAFlNEevoEH3Sl0sibVcOQVnN" crossorigin="anonymous"> <section class="jumbotron text-center"> <div class="container"> <h1 class="jumbotron-heading">Let's Shop</h1> <h1 class="jumbotron-heading">Panier</h1> </div> </section> <div class="container mb-4"> <div class="row"> <div class="col-12"> <div class="table-responsive"> <table class="table table-striped"> <thead> <tr> <th scope="col"> IMAGE </th> <th scope="col"> PRODUIT </th> <!-- <th scope="col"> QUANTITE </th> <th scope="col"> TAILLE </th> --> <th scope="col" class="text-right"> PRIX </th> <th> </th> </tr> </thead> <?php if (isset($_POST['photo_pdt']) AND isset($_POST['titre_pdt']) AND isset($_POST['prix_pdt'])){ if($_POST['id_pdt'] == $_POST['id_pdt']){ $requete = $bdd->prepare('INSERT INTO panier(photo_pdt, titre_pdt, prix_pdt) VALUES (:photo_pdt, :titre_pdt, :prix_pdt)'); $requete->execute(array( 'photo_pdt' => $_POST['photo_pdt'], 'titre_pdt' => $_POST['titre_pdt'], 'prix_pdt' => $_POST['prix_pdt'] )); }else { echo "Le panier est vide"; } }else { // Les info n'ont pas été envoyés par le form } ?> <tbody> <tr> <td><img class="col-2" src="<?= $_POST['photo_pdt'];?>"></td> <td><?= $_POST['titre_pdt']; ?></td> <td class="text-right"> <?= number_format($_POST['prix_pdt'],2,',','');?> €</td> <!--pour que les prix s'affichent au centimes près --> <td class="text-right"><button class="btn btn-sm btn-danger"><i class="fa fa-trash"></i> </button> </td> </tr> </tbody> <tr> <td></td> <td><strong>Total</strong></td> <td><strong>€</strong></td> </tr> </table> </div> </div> <div class="col mb-2"> <div class="row"> <div class="col-sm-12 col-md-6"> <button class="btn btn-block btn-dark">Continue Shopping</button> </div> <div class="col-sm-12 col-md-6 text-right"> <button class="btn btn-block btn-dark text-uppercase">PAIEMENT</button> </div> </div> </div> </div> </div> <?php include 'footer.php'; ?>
Je t'invite vivement à lire (et à appliquer...) le contenu de ces deux liens :
https://forums.commentcamarche.net/forum/affich-37584947-php-gestion-des-erreurs-debogage-et-ecriture-du-code
https://forums.commentcamarche.net/forum/affich-37584941-php-pdo-gerer-les-erreurs