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.



A voir également:

1 réponse

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
Lolo
 
euh ??? Désolé je débute en php/MySql est je ne vois pas ce qu'est PDO ?
0
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
Audric
 
Je ne te garantie rien mais essaye de mettre :

$req->execute(); 


avant :

while ($donnees = $req->fetch()) 
0
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
Lolo
 
Merci à tous...
0