Requête UPDATE pdo

Résolu
Garig -  
NHenry Messages postés 15235 Date d'inscription   Statut Modérateur Dernière intervention   -
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

  1. jordane45 Messages postés 30427 Date d'inscription   Statut Modérateur Dernière intervention   4 832
     
    Bonjour
    retire, dans ta requete update, les quotes autour de tes variables.

    1
    1. Garig
       
      ça ne change rien si j enleve les quotes, ce n est pas une erreur sql c est une erreur de id
      0
  2. NHenry Messages postés 15235 Date d'inscription   Statut Modérateur Dernière intervention   387
     
    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
  3. Garig
     
    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
    1. NHenry Messages postés 15235 Date d'inscription   Statut Modérateur Dernière intervention   387
       
      As-tu essayé $_REQUEST ?
      As-tu fais un print_r($_REQUEST) ?
      0