PHP supprimer donné d'une table

Résolu
Bonjour,
J'ai un petit probléme :
<?php
mysql_connect("localhost", "******", "*******");
mysql_select_db("*****");

// On utilise la requête suivante pour récupérer les 10 derniers messages :
$reponse = mysql_query("SELECT * FROM news ORDER BY ID DESC LIMIT 0,10");
mysql_close();
// Puis on fait une boucle pour afficher tous les résultats :
while ($donnees = mysql_fetch_array($reponse) )
{
?>
 
<p><?php echo $donnees['id']; ?><strong><?php echo $donnees['titre']; ?></strong> <br /> <?php echo $donnees['contenu']; ?></p>

<a href="<?php mysql_query("DELETE FROM news WHERE id='$donnees['id']'"); ?>">Supprimer</a>
<?php
}
// Fin de la boucle, le script est terminé !
?>


Je voudrais que quand je clique sur supprimer la news se supprime mais sa ne marche pas, la page n'arrive même pas à s'afficher.
HELP !
Configuration: Windows XP
Firefox 3.0.6

3 réponses

  1. De rien.

    J'espère que tu as bien compris ta faute car c'est essentiel dans le PHP ce genre de chose.
    1. Bonjour.

      <a href="<?php mysql_query("DELETE FROM news WHERE id='$donnees['id']'"); ?>">Supprimer</a>

      Oulala ! Après génération de la page par le serveur, l'attribut HREF est vide car tu ne fais aucun echo donc voici ce que ça donne :
      <a href="">Supprimer</a>

      En attendant, le code PHP a été excécuter donc même sans avoir cliqué sur le lien, la donnée a été effacée !

      ----------------------------------------------
      Voici comment tu pourrais faire :
      <a href="supprimer.php?id=<?php echo $donnees['id']; ?>">Supprimer</a>

      Ce qui donnera :
      <a href="supprimer.php?id=1">Supprimer</a>


      Et voici le contenu de supprimer.php :
      <?php
      if(preg_match("#^[0-9]+$#", $_GET['id']))
      {
        mysql_connect('','','');
        mysql_select_db('');
        $sql = 'DELETE FROM table WHERE id='.$_GET['id'];
        $req = mysql_query($sql);
        mysql_close();
      
        if($req == true) {
          echo 'Suppression réussie !';
        }
        else
        {
          echo 'Erreur lors de la suppression !';
        }
      }
      ?>