Bonsoir !
Description de la situation :
J'ai une page journal.php qui récupère les valeurs des actualités postés dans une base de données MySQL et les affiches dans un champs texte. Suite à quoi, l'utilisateur peut décider de cliquer sur le bouton modifier ou supprimer (pour modifier ou supprimer l'actualité).
Pour ce faire j'utilise une boucle while.
La page journal_modifier-supprimer.php récupère la valeur des champs texte ainsi que l'ID de l'actualité afin de procéder à sa modification ou à sa suppression dans la base de données.
Problème :
La modification ne fonctionne pas.
Lorsque je clique sur modifier (peu importe l'actualité) sur ma page journal.php, le résultat sur ma page journal_modifier-supprimer.php affiche toujours la même valeur (id,titre,texte).
journal.php :
journal_modifier-supprimer.php :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 // Connexion à la base de données $connexion = new PDO('mysql:host='.$PARAM_hote.';port='.$PARAM_port.';dbname='.$PARAM_nom_bd, $PARAM_utilisateur, $PARAM_mot_passe); // Préparation de la requête à l'exécution $req = "SELECT * FROM site_journal ORDER BY date DESC"; $req_finale = $connexion->query($req); // Récupération et affichage du résultat de la requête while($lignes=$req_finale->fetch(PDO::FETCH_OBJ)) { echo '<tr><input type="hidden" name="id" value="'.$lignes->id.'">'; echo '<td valign="top"><input name="titre" value="'.$lignes->titre.'" size="30" maxlength="120"><br>'.$lignes->id.'</td>'; echo '<td><textarea name="texte" rows="5" cols="40">'.$lignes->texte.'</textarea></td>'; echo '<td align="center"><input type="submit" name="modsupp" value="Modifier"><input type="submit" name="modsupp" value="Supprimer"></td></tr>'; } // Fermeture du curseur de la requête $req_finale->closeCursor();
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34 // Variables de modification/suppression $modsupp = $_POST['modsupp']; // Variables $date = time(); $id = $_POST['id']; $titre = $_POST['titre']; $texte = $_POST['texte']; if ($modsupp=="Modifier") { // Ajout de la news en fonction des vérification if ($titre!="" AND $texte!="") { // Connexion à la base de données try { $connexion = new PDO('mysql:host='.$PARAM_hote.';port='.$PARAM_port.';dbname='.$PARAM_nom_bd, $PARAM_utilisateur, $PARAM_mot_passe); } catch (PDOException $e) { echo 'Echec de la connexion : ' . $e->getMessage(); } // Préparation de la requête à l'exécution $req = "UPDATE site_journal SET titre='$titre',date='$date' WHERE id=$id"; $req_finale = $connexion->exec($req) or die($connexion->errorInfo()); // Exécution de la requête //$req_finale->execute(); // Fermeture du curseur de la requête $req_finale->closeCursor(); echo "Votre message a bien été modifié dans le journal !<br /> <a href='journal.php'>Cliquez ici pour retourner à la page précedente.</a>"; } }
N'étant pas un développeur invétéré, je ne peux être sûr du problème. Mais j'ai tendance à penser que cela viendrait de la ligne while($lignes=$req_finale->fetch(PDO::FETCH_OBJ)).
Qu'en pensez-vous ? Ai-je fait une erreur quelque part ?
En vous remerciant du temps que vous m'aurez accordé à me lire et peut-être à me répondre ! :-)
Partager