Php/pdo : Update ne fonctionne pas et ne renvoi pas d'erreur

Résolu/Fermé
logique Messages postés 92 Date d'inscription samedi 18 août 2012 Statut Membre Dernière intervention 4 avril 2013 - 31 mars 2013 à 01:47
 honey - 31 mai 2015 à 11:21
Bonjour,
je cherche où est le problème dans mon code car tout fonctionne sauf mon update : en clair lorsque j'appui sur le submit "valider" celui ci revient sur la même page comme si je n'avais rien fait.


voici le code :

<form action="index.php?page=gestlivres" method="post">
<hr>Modifier<hr>
<select name="livre">
<?php $sql="SELECT * FROM livres";
$req= $PDO->query($sql) or die (print_r($PDO->errorInfo()));
echo "selectionner le livre à modifier : ";
while ($d = $req-> fetch(PDO::FETCH_OBJ))
{
echo "<option value=".$d->id.">".$d->titre."</option>";
}
?>
</select>
<input type=submit name="modifier" value="modifier"/>
</form>
<form action="index.php?page=gestlivres" method="post">
<?php
if (isset($_POST['modifier']))
{
$livre = $PDO ->quote($_POST['livre']);
$sql="SELECT * FROM livres WHERE id=$livre";
$req= $PDO->query($sql) or die (print_r($PDO->errorInfo()));
while ($d = $req-> fetch(PDO::FETCH_OBJ))
{
$code_barre = $d->code_barre;
$titre = $d->titre;
$isbn = $d->isbn;
$titre = $d->titre;
$auteur = $d->auteur;
}
?>
<input type=hidden name="id_livre" value="<?php echo $livre;?>"/>
code_barre : <input type=text name="code_barre" value="<?php echo $code_barre;?>"/>
ISBN : <input type=text name="isbn" value="<?php echo $isbn;?>"/>
titre : <input type=text name="titre" value="<?php echo $titre;?>"/>
auteur : <input type=text name="auteur" value="<?php echo $auteur;?>"/>
<select name="id_genre">
<?php
$sql="SELECT * FROM genres";
$req= $PDO->query($sql) or die (print_r($PDO->errorInfo()));
while ($d = $req-> fetch(PDO::FETCH_OBJ))
{
echo "<option value=".$d->id.">".$d->genre."</option>";
}
?>
</select>
<input type=submit name="valider" value="valider"/>
</form>
<?php
if (isset($_POST['valider']))
{
$id_livre = $PDO ->quote($_POST['id_livre']);
$code_barre = $PDO ->quote($_POST['code_barre']);
$isbn = $PDO ->quote($_POST['isbn']);
$titre = $PDO ->quote($_POST['titre']);
$auteur = $PDO ->quote($_POST['auteur']);
$id_genre = $PDO ->quote($_POST['id_genre']);
$req = $PDO->exec("UPDATE SET livres(code_barre, isbn, titre, auteur, id_genre) VALUES ($code_barre, $isbn,$titre, $auteur, $id_genre) WHERE id=$id_livre");
echo "Modification réussi !";
}}
?>

Merci si vous avez la solution à mon problème.

7 réponses

Bonjour,

Le post a plus de 2 ans, mais j'ai le même problème. Quelle a été votre solution ?
2
logique Messages postés 92 Date d'inscription samedi 18 août 2012 Statut Membre Dernière intervention 4 avril 2013 3
31 mars 2013 à 09:45
Up !
0
Le problème vient de ton sql.
update table set champ="machin"
0
logique Messages postés 92 Date d'inscription samedi 18 août 2012 Statut Membre Dernière intervention 4 avril 2013 3
31 mars 2013 à 09:53
j'vais essayer ça
0
logique Messages postés 92 Date d'inscription samedi 18 août 2012 Statut Membre Dernière intervention 4 avril 2013 3
31 mars 2013 à 10:05
toujours pareil, rien ne se passe
0
logique Messages postés 92 Date d'inscription samedi 18 août 2012 Statut Membre Dernière intervention 4 avril 2013 3
31 mars 2013 à 10:09
Quand j'enlève complètement ma requête, celle ci me fait la même chose.. le problème ne serait donc pas dû à la requête ?
0
logique Messages postés 92 Date d'inscription samedi 18 août 2012 Statut Membre Dernière intervention 4 avril 2013 3
Modifié par logique le 31/03/2013 à 10:16
j'ai essayé ça :
$req = $PDO->exec("UPDATE livres SET (code_barre, isbn, titre, auteur, id_genre) VALUES ($code_barre, $isbn,$titre, $auteur, $id_genre) WHERE id=$id_livre");

Puis ça :
$req= $PDO->prepare('UPDATE livres SET (code_barre= :code_barre, isbn = :isbn, titre = :titre, auteur = :auteur, id_genre = :id_genre) WHERE id = :id_livre' );
$req->execute(array(
'code_barre' => $_POST['coe_barre'],
'isbn'=> $_POST['isbn'],
'titre' => $_POST['titre'],
'auteur'=> $_POST['auteur'],
'id_genre' => $_POST['id_genre'],
'id_livre'=> $_POST['id_livre']));

et j'ai essayé en supprimant la requête et afficher juste ce qui s'envoyait... même sans requête après il revient au point de départ. sans m'afficher les variables envoyées
0
logique Messages postés 92 Date d'inscription samedi 18 août 2012 Statut Membre Dernière intervention 4 avril 2013 3
31 mars 2013 à 10:49
j'ai modifier un peu le code et j'ai réussi à obtenir ça :

Fatal error: Uncaught exception 'PDOException' with message 'SQLSTATE[42000]: Syntax error or access violation: 1064 You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '(code_barre, isbn, titre, auteur, id_genre) VALUES (4848794661, 9781843910374, S' at line 1' in xx.php:89 Stack trace: #0 xx.php(89): PDO->exec('UPDATE livres S...') #1xx.php(70): include(xx...') #2 {main} thrown in xx.php on line 89

si vous avez une idée de l'erreur que ça peut etre ?
0
logique Messages postés 92 Date d'inscription samedi 18 août 2012 Statut Membre Dernière intervention 4 avril 2013 3
31 mars 2013 à 10:53
cette fois ci quand j'enleve la requête et je le demande de m'afficher ce qu'il doit envoyé ça marche. mais dès que je rajoute la requête ça me met le message d'erreur d'au-dessus
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
logique Messages postés 92 Date d'inscription samedi 18 août 2012 Statut Membre Dernière intervention 4 avril 2013 3
31 mars 2013 à 16:11
up !
0
logique Messages postés 92 Date d'inscription samedi 18 août 2012 Statut Membre Dernière intervention 4 avril 2013 3
1 avril 2013 à 10:05
de l'aide svp !
0
logique Messages postés 92 Date d'inscription samedi 18 août 2012 Statut Membre Dernière intervention 4 avril 2013 3
Modifié par logique le 1/04/2013 à 11:36
Problème résolu tout seul. Si vous voulez connaitre le pourquoi poster à la suite.
0
comment tu l 'a fait j'ai le meme probleme
0