Système de news, l'édition ne fonctionne pas

Résolu
Geopra Messages postés 187 Date d'inscription   Statut Membre Dernière intervention   -  
yg_be Messages postés 23541 Date d'inscription   Statut Contributeur Dernière intervention   -
Bonjour,
J'ai créé un petit système de news pour mon site, avec un lien pour éditer la news, le soucis, c'est que lorsque j'en modifie une, toutes les news se modifient, et prennent la même valeur que l'initiale...

J'imagine qu'il s'agit d'une erreur au niveau de l'id de la news, mais je ne vois pas d'où elle pourrait provenir... :)

Voici le code :

<?php
if(!empty($_POST)){
        $erreurs = array();
if(empty($_POST['news_title'])){
	$erreurs['news_title'] = "Pas de titre !";
	}
if(empty($_POST['news_content'])){
	$erreurs['news_content'] = "Pas de contenu !";
	}
if(empty($erreurs)){
	$req = $pdo->prepare("UPDATE news SET news_title = ?, news_content = ?");
	$req->execute([$_POST['news_title'], $_POST['news_content']]);
	echo "Modification effectuée !";
	header('location: index.php');
}
}

$req = $pdo->prepare("SELECT * FROM news WHERE id = ?");
$req->execute([$_GET['id']]);
$update_news = $req->fetch(PDO::FETCH_ASSOC);

$req = $pdo->prepare("SELECT * FROM news WHERE id = ?");
$req->execute([$_GET['id']]);
$update_news = $req->fetch(PDO::FETCH_ASSOC);

if(empty($update_news)){
	die('Cet id n\'existe pas !');
}
?>

<form action="" method="POST">
<div>
        <label for="">Titre :</label>
        <input type="text" name="news_title" value="<?php echo $update_news['news_title']; ?>"/>
</div>
<div>
	<label for="">Contenu :</label>
	<textarea name="news_content"><?php echo $update_news['news_content']; ?></textarea>
</div>
<button type="submit">Envoyer</button>
</form>


Merci d'avance pour votre aide ! :)

A voir également:

2 réponses

NHenry Messages postés 15219 Date d'inscription   Statut Modérateur Dernière intervention   365
 
Il est où ton WHERE dans ta requête UPDATE ?
0
Geopra Messages postés 187 Date d'inscription   Statut Membre Dernière intervention   3
 
ah oui exact, forcément... XD merci ! :)
0
NHenry Messages postés 15219 Date d'inscription   Statut Modérateur Dernière intervention   365
 
Si la question est résolu, merci de cliquer sur le bouton "Marquer comme résolu".
0
Geopra Messages postés 187 Date d'inscription   Statut Membre Dernière intervention   3
 
fait pas tout à fait, car je fais des tests depuis tt à l'heure, et visiblement, je ne place pas le "WHERE" là où il faudrait, où doit-il être mis ??
0
yg_be Messages postés 23541 Date d'inscription   Statut Contributeur Dernière intervention   Ambassadeur 1 584
 
bonjour. par exemple:
$newsid=$_GET['id'];
if(empty($erreurs)){
	$req = $pdo->prepare("UPDATE news SET news_title = ?, news_content = ? WHERE id = ?");
	$req->execute([$_POST['news_title'], $_POST['news_content'],$newsid]);
0