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

Résolu
Geopra Messages postés 198 Statut Membre -  
yg_be Messages postés 24281 Statut Contributeur -
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 ! :)

2 réponses

NHenry Messages postés 15479 Statut Modérateur 366
 
Il est où ton WHERE dans ta requête UPDATE ?
0
Geopra Messages postés 198 Statut Membre 3
 
ah oui exact, forcément... XD merci ! :)
0
NHenry Messages postés 15479 Statut Modérateur 366
 
Si la question est résolu, merci de cliquer sur le bouton "Marquer comme résolu".
0
Geopra Messages postés 198 Statut Membre 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 24281 Statut Contributeur 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