IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

PHP & Base de données Discussion :

Récupérer l'id de chaque produit de la base dans un form submit


Sujet :

PHP & Base de données

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Debutant php
    Inscrit en
    Juin 2018
    Messages
    20
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : Suisse

    Informations professionnelles :
    Activité : Debutant php

    Informations forums :
    Inscription : Juin 2018
    Messages : 20
    Points : 5
    Points
    5
    Par défaut Récupérer l'id de chaque produit de la base dans un form submit
    Bonjour,

    J'essaye de créer un panier où j'aimerais récupérer l'id de chaque produuit a chaque fois que je clique sur celui-ci dans un form submit ainsi que la quantité par $_POST dans une autre page dans un premier temps. Pour l'instant comme je suis débutant en php à chaque fois que je clique sur le bouton submit pour un produit je récupère toujours le dernier id de la liste
    Merci pour votre aide !

    Voici mon code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    <?php
    session_start(); //demarrage de la session
     
    try
    {
    	// On se connecte à MySQL
    	$bdd = new PDO('mysql:host=localhost;dbname=CaveVin;charset=utf8', '', '');
    }
    catch(Exception $e)
    {
    	// En cas d'erreur, on affiche un message et on arrête tout
            die('Erreur : '.$e->getMessage());
    }
     
     
    $Pseudo=$_SESSION['email'];
    echo ' Utilisateur :  '; echo  $Pseudo;
     
     
    if (!isset($Pseudo))
    {
    header('Location: test1.php');
    } 
    	else
    {
    ?> 
    <html>
    <form action="panier4_3_test1.php" method="post">
     
    <H1 align="center">Boutique de vin en ligne ....</H1>
    <table border="1" bgcolor="cccccc" align="center" width="75%">
    <tr bgcolor='white'>
    <td width=''>Nom Vin</td>
    <td width=''>Type Vin</td>
    <td width=''>Description Vin</td>
    <td width=''>Prix Vin</td>
    <td width=''>Capacite Vin</td>
    <td width=''>Quantité carton(s)</td>
    <td width=''>ID Vin</td>
    <td width=''>&nbsp;</td>
    </tr>
     
    <?php
    $sql = $bdd->query("SELECT* FROM Vin ");
    while ($data = $sql->fetch()) 
    {//la boucle pour l'affichage des données.
    ?>
         <tr><td><?php echo  $data['nomVin']; ?> 
         </td><td> <?php echo  $data['typeVin']; ?>
          </td><td> <?php echo $data['descriptionVin']; ?>
          </td><td> <?php echo $data['prixVin']; ?> 
          </td><td> <?php echo $data['capaciteVin']; ?> 
          </td><td><input type="text" name="xx" value="<?php echo $data['']; ?>" />
          </td><td><input type="text"  name="number"  value="<?php echo $data['idVin']; ?> "/> 
          </td><td><input type="submit" name="Panier" value="Panier"></input></td></tr>
         <?php
    }
    }
    ?>
    </form>
    <a href="deconnect.php">Déconnection</a>
    </html>

  2. #2
    Expert confirmé Avatar de Toufik83
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2012
    Messages
    2 402
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Suisse

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2012
    Messages : 2 402
    Points : 4 837
    Points
    4 837
    Par défaut
    Bonjour,

    Il faudrait ajouter un <input type="hidden" name="ids[]" value="<?=$data["idVin"]?>" /> à l'intérieur de <form>.

    Les crochets name="ids[]" dans la propriété name permettent de créer un tableau des ids que vous pouvez récupérer en PHP via $_POST["ids"]

  3. #3
    Membre régulier
    Homme Profil pro
    Educateur spécialisé
    Inscrit en
    Janvier 2012
    Messages
    208
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Educateur spécialisé
    Secteur : Santé

    Informations forums :
    Inscription : Janvier 2012
    Messages : 208
    Points : 118
    Points
    118
    Par défaut
    Ou alors tu mets les balises form à l’intérieur de ton while et tu mets
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    echo’<input type="hidden" name="ids" value="´.$data["idVin"].’" />’;

  4. #4
    Futur Membre du Club
    Homme Profil pro
    Debutant php
    Inscrit en
    Juin 2018
    Messages
    20
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : Suisse

    Informations professionnelles :
    Activité : Debutant php

    Informations forums :
    Inscription : Juin 2018
    Messages : 20
    Points : 5
    Points
    5
    Par défaut
    Bonsoir,

    Ça ne fonctionne tj pas. Ça me donne l'id du dernier produit et la quantité non plus
    Merci pour votre aide.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    <?php
    session_start(); //demarrage de la session
     
    try
    {
    	// On se connecte à MySQL
    	$bdd = new PDO('mysql:host=localhost;dbname=CaveVin;charset=utf8', ' ', ' ');
    }
    catch(Exception $e)
    {
    	// En cas d'erreur, on affiche un message et on arrête tout
            die('Erreur : '.$e->getMessage());
    }
     
     
    $Pseudo=$_SESSION['email'];
    echo ' Utilisateur :  '; echo  $Pseudo;
     
     
    if (!isset($Pseudo))
    {
    header('Location: test1.php');
    } 
    	else
    {
     
    //if (isset($_SESSION['panier']))
    	//{ si il y a une comande dans le caddie alors on affiche un lien au caddie 
    //echo "<div align='right'><a href='panier4_3_test.php'><b>VOIR CADDIE</b></a></div><br><br>";
    //}
    //if(!isset($_GET['prod'])){// pas de variable dans l'url
    ?> 
    <html>
    <form action="panier4_3_test1.php" method="post">
     
    <H1 align="center">Boutique de vin en ligne ....</H1>
    <table border="1" bgcolor="cccccc" align="center" width="75%">
    <tr bgcolor='white'>
    <td width=''>ID Vin</td>
    <td width=''>Nom Vin</td>
    <td width=''>Type Vin</td>
    <td width=''>Description Vin</td>
    <td width=''>Prix Vin</td>
    <td width=''>Capacite Vin</td>
    <td width=''>Quantité carton(s)</td>
    <td width=''>&nbsp;</td>
    </tr>
     
     
    <?php
     
    //$sql="Select idVin,nomVin,typeVin,descriptionVin,prixVin,capaciteVin,stockVin FROM Vin";
    $sql = $bdd->query("SELECT* FROM Vin ");
    //$sqlexe = execute($sql);
    //$req=mysql_query($sql);
    while ($data = $sql->fetch()) 
    {//la boucle pour l'affichage des données.
    ?>
        <tr><td><input*type="hidden"*name="ids[]"*value="<?=$data["idVin"]?>"*/>
         </td><td><?php echo  $data['nomVin']?> 
         </td><td><?php echo  $data['typeVin'] ?>
          </td><td><?php echo $data['descriptionVin']?>
          </td><td><?php echo $data['prixVin']?> 
          </td><td><?php echo $data['capaciteVin']?> 
          </td><td><input type="text" name="xx" value="<?=$data['xx']?>" />
          </td><td><input type="submit" name="Panier" value="Panier"></input></td></tr>
    <?php
    } 
    }
    ?>
    </form>
    <a href="deconnect.php">Déconnection</a>
    </html>

  5. #5
    Expert confirmé Avatar de Toufik83
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2012
    Messages
    2 402
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Suisse

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2012
    Messages : 2 402
    Points : 4 837
    Points
    4 837
    Par défaut
    Bonjour,

    Pourquoi il y'a des étoiles dans votre input ? <input*type="hidden"*name="ids[]"*value="<?=$data["idVin"]?>"*/>, en les supprimant je reçois toutes les valeurs dans le tableau ids via $_POST["ids"] sans problème.

    Montrez moi le code du fichier panier4_3_test1.php pour voir ce qui se passe....

  6. #6
    Futur Membre du Club
    Homme Profil pro
    Debutant php
    Inscrit en
    Juin 2018
    Messages
    20
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : Suisse

    Informations professionnelles :
    Activité : Debutant php

    Informations forums :
    Inscription : Juin 2018
    Messages : 20
    Points : 5
    Points
    5
    Par défaut
    Bonjour,

    Moi-même je ne comprends pas pourquoi il y a des étoiles car sur mon code j'y vois rien.

  7. #7
    Futur Membre du Club
    Homme Profil pro
    Debutant php
    Inscrit en
    Juin 2018
    Messages
    20
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : Suisse

    Informations professionnelles :
    Activité : Debutant php

    Informations forums :
    Inscription : Juin 2018
    Messages : 20
    Points : 5
    Points
    5
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    <?php
     
    //session_start();
     
    //$Pseudo=$_SESSION['email'];
    //echo ' Utilisateur :  '; echo $Pseudo;
     
     
    $idVin= $_POST["ids"];
    echo $idVin;
     
    $nombre = $_POST["xx"];
    echo $nombre;
    ?>
    Par rapport au input où il y a des étoiles qui apparaissent, dans le code il y a rien. Je ne sais pas d'où ça vient.
    Merci

  8. #8
    Expert confirmé Avatar de Toufik83
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2012
    Messages
    2 402
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Suisse

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2012
    Messages : 2 402
    Points : 4 837
    Points
    4 837
    Par défaut
    Bonjour,

    echo $idVin; , le contenu d'un tableau PHP ne peut pas être visualiser comme ça, il faut utiliser var_dump().

  9. #9
    Futur Membre du Club
    Homme Profil pro
    Debutant php
    Inscrit en
    Juin 2018
    Messages
    20
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : Suisse

    Informations professionnelles :
    Activité : Debutant php

    Informations forums :
    Inscription : Juin 2018
    Messages : 20
    Points : 5
    Points
    5
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    <?php
     
    //session_start();
     
    //$Pseudo=$_SESSION['email'];
    //echo ' Utilisateur :  '; echo $Pseudo;
     
     
    $idVin= var_dump($_POST["ids"]);
    echo $idVin;
     
    $nombre = var_dump($_POST["xx"]);
    echo $nombre;
    ?>
    Bonjour,

    Ça me renvoie toujours pas les valeurs de l'Id ainsi que la quantité a chaque clique d'un input.
    Merci

  10. #10
    Futur Membre du Club
    Homme Profil pro
    Debutant php
    Inscrit en
    Juin 2018
    Messages
    20
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : Suisse

    Informations professionnelles :
    Activité : Debutant php

    Informations forums :
    Inscription : Juin 2018
    Messages : 20
    Points : 5
    Points
    5
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    	<?php
    	 session_start();
    	function pdo_connect_mysql(){
    	    // Mettez à jour les détails ci-dessous avec les données de votre base de données MySQL.
    	    $DATABASE_HOST = 'localhost';
    	    $DATABASE_USER = 'root';
    	    $DATABASE_PASS = '';
    	    $DATABASE_NAME = 'shoppingpanier';
    	    try {
    	 return new PDO('mysql:host=' . $DATABASE_HOST . ';dbname=' . $DATABASE_NAME . ';charset=utf8', $DATABASE_USER, $DATABASE_PASS);
    	    } catch (PDOException $exception) {
    	   // S'il y a une erreur de connexion, arrêtez le script et affichez le message erreur.
    	      exit('Echec de la connexion à la base de données !');
    	    }
    	}
    	// Template de l'entete de notre page, vous pouvez le personnaliser.
    	function template_header($title) {
    	// Obtenez le nombre de produits dans le panier, il sera affiché dans l'en-tête.
    	$num_items_in_panier = isset($_SESSION['panier'])? count($_SESSION['panier']) : 0;
    	echo EOT;
    	<!DOCTYPE html>
    	<html>
    	<head>
    	 <meta charset="utf-8">
    	<title>$title</title>
    	<link rel="stylesheet" href="https://use.fontawesome.com/releases/v5.7.1/css/all.css">
    	<link href="style.css" rel="stylesheet" type="text/css">
    	</head>
    	<body>
    	  <header>
    	  <div class="content-wrapper">
    	<h1>Shopping Panier System</h1>
    	   <nav>
    	   <a href="index.php" tite="accueil"><i class="fas fa-home"></i>Accueil </a>
    	   <a href="index.php?page=produits" title="page des
    	produits">produits</a>
    	</nav>
    	<div class="link-icons">
    	   <a href="index.php?page=panier" title="panier d'achat"><i class="fas fa-shopping-panier">&nbsp;</i><spanstyle="color:#f00;background:#fff; border:solid 0.5px"> $num_items_in_panier</span></a>
    	                </div>
    	            </div>
    	        </header>
    	        <main>
    	EOT;
    	}
    	// Template pied de page
    	function template_footer() {
    	$year = date('Y');
    	echo EOT;
    	        </main>
    	        <footer>
    	            <div class="content-wrapper">
    	<p>&copy; $year, Système de panier d'achats</p>
    	            </div>
    	        </footer>
    	    </body>
    	</html>
    	EOT;
    	}
    	?>
    Bonjour,

    J'ai une erreur dans cette page. Ça dit parse error unexpected > a la ligne 20 qui se trouve après <!DOCTYPE html>.
    Merci

Discussions similaires

  1. [MySQL] Impossible de récupérer le nombre total de chaque produit.
    Par bertrand59789 dans le forum PHP & Base de données
    Réponses: 8
    Dernier message: 11/05/2021, 21h01
  2. [Débutant] [VS 2013] Plante a chaque clic sur un controle dans la form
    Par identifia dans le forum Windows Forms
    Réponses: 6
    Dernier message: 22/07/2015, 14h42
  3. Récupérer chaque ligne de type enregistrement dans une table
    Par atporfi dans le forum Administration
    Réponses: 2
    Dernier message: 02/04/2008, 19h12
  4. Réponses: 13
    Dernier message: 11/05/2006, 14h15
  5. Récupérer les maximums pour chaque ensemble ?
    Par vynce dans le forum Langage SQL
    Réponses: 2
    Dernier message: 15/12/2005, 09h52

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo