Problème de récupération, fetch(PDO::FETCH_OBJ) en cause ?
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 :
Code:
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(); |
journal_modifier-supprimer.php :
Code:
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 ! :-)