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

[Résolu/Fermé]
Signaler
Messages postés
92
Date d'inscription
samedi 18 août 2012
Statut
Membre
Dernière intervention
4 avril 2013
-
 honey -
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
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

CCM 42674 internautes nous ont dit merci ce mois-ci

Messages postés
92
Date d'inscription
samedi 18 août 2012
Statut
Membre
Dernière intervention
4 avril 2013
3
Up !
Le problème vient de ton sql.
update table set champ="machin"
Messages postés
92
Date d'inscription
samedi 18 août 2012
Statut
Membre
Dernière intervention
4 avril 2013
3
j'vais essayer ça
Messages postés
92
Date d'inscription
samedi 18 août 2012
Statut
Membre
Dernière intervention
4 avril 2013
3
toujours pareil, rien ne se passe
Messages postés
92
Date d'inscription
samedi 18 août 2012
Statut
Membre
Dernière intervention
4 avril 2013
3
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 ?
Messages postés
92
Date d'inscription
samedi 18 août 2012
Statut
Membre
Dernière intervention
4 avril 2013
3
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
Messages postés
92
Date d'inscription
samedi 18 août 2012
Statut
Membre
Dernière intervention
4 avril 2013
3
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 ?
Messages postés
92
Date d'inscription
samedi 18 août 2012
Statut
Membre
Dernière intervention
4 avril 2013
3
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
Messages postés
92
Date d'inscription
samedi 18 août 2012
Statut
Membre
Dernière intervention
4 avril 2013
3
up !
Messages postés
92
Date d'inscription
samedi 18 août 2012
Statut
Membre
Dernière intervention
4 avril 2013
3
de l'aide svp !
Messages postés
92
Date d'inscription
samedi 18 août 2012
Statut
Membre
Dernière intervention
4 avril 2013
3
Problème résolu tout seul. Si vous voulez connaitre le pourquoi poster à la suite.
comment tu l 'a fait j'ai le meme probleme