Requête UPDATE pdo [Résolu/Fermé]

Signaler
-
Messages postés
14799
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
6 juin 2021
-
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.

3 réponses

Messages postés
32944
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
12 juin 2021
3 557
Bonjour
retire, dans ta requete update, les quotes autour de tes variables.

ça ne change rien si j enleve les quotes, ce n est pas une erreur sql c est une erreur de id
Messages postés
14799
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
6 juin 2021
291
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.


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
Messages postés
14799
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
6 juin 2021
291
As-tu essayé $_REQUEST ?
As-tu fais un print_r($_REQUEST) ?