Problème récupération données dans bdd

Résolu
Lolo -  
 Lolo -
Bonjour,

Je suis entrain de réaliser un panier pour un galerie photo e-commerce.
Le formulaire de ma galerie est prêt.
Ma requête pour l'insertion des données choisie par le client (prix/format, quantité, image) dans le bdd est faite mais rien ne sa passe. Pas de message d'erreur, ni de données enregistrées dans la bdd.
Je pense que le problème vient de ma boucle. Elle tourne dans le vide (je pense ???).
<?php
try

{
$pdo_options[PDO::ATTR_ERRMODE] = PDO::ERRMODE_EXCEPTION;
$bdd = new PDO('mysql:host=localhost;dbname=album_photos', 'root', '', $pdo_options);

$req=$bdd->prepare('SELECT chemin FROM cliches');
while ($donnees = $req->fetch())


{
if(isset($_SESSION['email']))
{
$req=$bdd->prepare('INSERT INTO panier (email_client, date_creation_panier, produit, quantite, prix_format) VALUES (:email_client, NOW(), :produit, :quantite, :prix_format)');
$req->execute(array(
'email_client'=> $_POST['email'] = $_SESSION['email'],
'produit'=> $_POST['produit'] = $donnees,
'quantite'=> $_POST['quantite'],
'prix_format'=> $_POST['prix_format']));
}
else
{
echo 'Veuillez vous identifier';
}
}

$req->closeCursor();
}
catch(Exception $e)
{
die('Erreur: '.$e->getMessage());
}
?>
De plus ma condition ne renvoie rien non plus. Ni message d'erreur, ni l'echo.
Auriez vous des idées ?
Merci.

1 réponse

  1. Audric
     
    Je ne connais pas le fonctionnement de ta class PDO de gestion de ta base de donnée mais quand je vois :

    $req=$bdd->prepare('SELECT chemin FROM cliches');


    J'imagine que derriere la requete il faut l'executer avant de faire :
    while ($donnees = $req->fetch())


    Surtout qu'au dessous il y a :

    $req=$bdd->prepare('INSERT INTO panier (email_client, date_creation_panier, produit, quantite, prix_format) VALUES (:email_client, NOW(), :produit, :quantite, :prix_format)');
    $req->execute(array(....));


    Peux-tu copier le contenu de class PDO ? ou au moins la fonction prepare() ?
    0
    1. Lolo
       
      euh ??? Désolé je débute en php/MySql est je ne vois pas ce qu'est PDO ?
      0
    2. Lolo
       
      A la place de $req=$bdd->prepare('SELECT chemin FROM cliches');
      j'ai mis $req=$bdd->query('SELECT chemin FROM cliches');
      et l'echo s'affiche enfin mais toujours pas de données intégrées dans la bdd et en plus quand je m'identifie il me marque cette erreur :
      Notice: Array to string conversion in C:\wamp\www\album_photos\panier.php on line 37
      Erreur: SQLSTATE[HY000]: General error
      ???
      0
    3. Audric
       
      Je ne te garantie rien mais essaye de mettre :

      $req->execute(); 


      avant :

      while ($donnees = $req->fetch()) 
      0
    4. Audric
       
      En ce qui concerne l'insertion, essaye deja de remplacer :
      $req->execute(array(
      'email_client'=> $_POST['email'] = $_SESSION['email'],
      'produit'=> $_POST['produit'] = $donnees,
      'quantite'=> $_POST['quantite'],
      'prix_format'=> $_POST['prix_format'])); 

      Par des valeurs fixe donc quelque chose comme :
      $req->execute(array(
      'email_client'=> 'email',
      'produit'=> 'produit',
      'quantite'=> '1',
      'prix_format'=> 'blabla')); 

      Je ne suis pas sur mais la syntaxe :
      'email_client'=> $_POST['email'] = $_SESSION['email']

      et
      'produit'=> $_POST['produit'] = $donnees

      Me semble douteuses
      Je ne sais pas si c'est bien faisable ca en php...
      'email_client'=> $_SESSION['email']
      'produit'=> $donnees

      ou
      'email_client'=> $_POST['email']
      'produit'=> $_POST['produit']
      

      Serait plus cohérent
      0
    5. Lolo
       
      Merci à tous...
      0