Requête UPDATE pdo

Résolu/Fermé
Garig - Modifié par NHenry le 26/03/2016 à 12:37
NHenry Messages postés 15112 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 13 avril 2024 - 26 mars 2016 à 13:34
Bonjour,

J'ai un script php qui affiche dans un formulaire les données d'une news avec une requete SELECT.
Puis je veux pouvoir modifier les données de la news affichée dans le formulaire avec une requete préparée UPDATE.
Mais ça ne marche pas voici mon script:

<?php

require("../config.php");

$requete=$connexion->query("SELECT * FROM news WHERE id='{$_GET['id']}'");
$data=$requete->fetch(PDO::FETCH_ASSOC);
$repertoire ="images/";
$user_image= $data['logo'];

if(!empty($_POST)){

 $smtp=$connexion->prepare("UPDATE news SET titre=':titre', logo=':logo', contenu=':contenu' WHERE id=':id' ");;
 $smtp->execute(array(
  ':titre'=>$_POST['titre'], 
  ':logo'=>$_POST['logo'],
  ':contenu'=>$_POST['contenu'],
  ':id'=> $_GET['id'] 
     ));
 echo "News modifiée<br />"; 
 }

echo print_r($_GET['id'],true);

?>

<h3>Editer la news</h3>

<form method="post" action="edit.php" enctype="multipart/form-data">
 <input type="hidden" name="id" value="<?php echo $data['id']; ?>"/>
 Titre:<input type="text" name="titre" size="60" value="<?php echo $data['titre']; ?>"/><br/>
 Date:<input type="text" name="titre" size="60" value="<?php echo $data['date']; ?>"/><br/>
 logo:<input type="text" name="logo" size="60" value="<?php echo $repertoire.$user_image; ?>" /><br />
 Contenu:<br/>
 <textarea  name="contenu" style="width:100%;height:150px"><?php echo $data['contenu']; ?></textarea><br />
 <input type="submit" value="Modifier la news"/>
</form>
<p><a href="index.php">Retour a l index</a></p>





j'ajoute que echo print_r($_GET['id'],true); affiche bien l'id de la news soit 8

et que malgré cela j ai l erreur suivante :
Notice: Undefined index: id in C:\wamp\www\smarty\admin\edit.php on line 5
Notice: Undefined index: id in C:\wamp\www\smarty\admin\edit.php on line 17
Notice: Undefined index: id in C:\wamp\www\smarty\admin\edit.php on line 22

Aidez-moi svp





EDIT : Ajout des balises de code (la coloration syntaxique).
Explications disponibles ici : ICI

Merci d'y penser dans tes prochains messages.
A voir également:

3 réponses

jordane45 Messages postés 38139 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 20 avril 2024 4 649
26 mars 2016 à 11:57
Bonjour
retire, dans ta requete update, les quotes autour de tes variables.

1
ça ne change rien si j enleve les quotes, ce n est pas une erreur sql c est une erreur de id
0
NHenry Messages postés 15112 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 13 avril 2024 330
26 mars 2016 à 12:39
Les messages d'avertissements t'indiquent que les index (ici les noms des clés) ne sont pas présentes dans le tableau donné.

Je remarque aussi que tu as du $_GET et $_POST dans la même page, ce qui laisse penser à une mauvaise utilisation des formulaires.
Pour info, $_REQUEST regroupe les données de $_GET et $_POST.


0
Oui mais je suis bien obligé de récupérer les données de la news en GET dans mon formulaire avant de pourvoir les modifier directement dans le formulaire et de les envoyer en POST avec un UPDATE
0
NHenry Messages postés 15112 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 13 avril 2024 330
26 mars 2016 à 13:34
As-tu essayé $_REQUEST ?
As-tu fais un print_r($_REQUEST) ?
0