Hello !
Première chose qui m'interpelle dans ton code, c'est l'utilisation des short tags pour afficher l'id dans tes liens. Ces derniers n'étant plus actifs par défaut dans les configurations de php, il est très fortement recommandé d'abandonner la syntaxe <? et <?= au profit de <?php et <?php echo pour que ton code ne dépende pas de la configuration du serveur à laquelle tu n'auras pas toujours accès.
...
<a href="../index.php?id=<?php echo $info_article['id']; ?> " target="_blank">Afficher</a> -
<a href="modifier_article.php?id=<?php echo $info_article['id']; ?>">Modifier</a> -
<a href="supprimer_article.php?id=<?php echo $info_article['id']; ?>">Supprimer</a>
Tu peux d'ors et déjà vérifier si cela change quelque chose dans l'url que tu ouvres en cliquant sur le lien, as-tu bien l'information index.php?id=6 ?
Pour tes requêtes SQL, il ne faut pas mettre des apostrophes ou des guillemets n'importe où. Seules les chaines de caractères (varchar, texte, date, ...) doivent être placées entre apostrophes (et pas entre guillemets, même si certains SGBD le tolèrent, ce n'est pas le cas de tous). Les nombres (int, tinyint, float, ...) ne doivent pas être délimitées (là encore si certains SGBD le tolèrent, ce n'est pas le cas de tous).
Pour construire ta requête commence par le résultat que tu souhaites obtenir :
Code : Tout sélectionner
UPDATE articles SET title = 'Mon Titre', contenu_article = 'Mon contenu ' WHERE id=6
-- Si on découpe la chaine pour extraire les données variables :
"UPDATE articles SET title = '" . "Mon Titre" . "', contenu_article = '" . "Mon contenu" . "' WHERE id=" . 6
-- Tu peux maintenant inclure tes variables :
"UPDATE articles SET title = '" . $title . "', contenu_article = '" . $contenu_article . "' WHERE id=" . $id
Nota : pour $id, tu dois effectivement récupérer la variable passée en get dans l'url, (en t'assurant au préalable qu'un id est bien passé dans l'url) il te faut donc :
if (isSet($_GET['id']))
$id = $_GET['id'];
else
$id = 0; // si tu veux gérer une valeur par défaut
Ce que l'on peut aussi écrire sous cette forme, ça revient au même :
$id = isSet($_GET['id']) ? $_GET['id'] : 0;
Ton script devrait déjà mieux fonctionner
Il faudra cependant faire ensuite attention à ce que l'on appelle les injections SQL et éviter que quelqu'un ne remplace la valeur ?id=6 dans l'url par ?id=6 or 1=1, ce qui aurait pour effet d'affecter toutes tes lignes et pas seulement celle qui a pour id 6... mais ça c'est une autre histoire
