Suppression d'une ligne dans la base mysql

Résolu
ia2c Messages postés 37 Statut Membre -  
 Utilisateur anonyme -
bonjour,

je vous contacte pour m'aider sur mon projet , mon problème est de supprimer une ligne dans la base j'ai essayé plusieurs fois mais j'arrive pas à trouver la solution..
voici mon code et j'espère que vous pouvez m'aider..
svp aidez moi
merci
c'est le code de la page qui contienne le tableau des informations
include("connection.php");
$data=("select id,titre,dedier,criticite,description,date from taches");

?>

<table border="1">

<tr>
<th>Numéro</th>
<th>Titre</th>
<th>Dédier à</th>
<th>criticité</th>
<th>description</th>
<th>Date Limite</th>
<th>Actions</th>
</tr>
<?php

if($resultat=mysql_query($data))
while($ligne=mysql_fetch_assoc($resultat))
{
?>
<tr>
<td><?php echo $ligne['id'];?></td>
<td><?php echo $ligne['titre'];?></td>
<td><?php echo $ligne['dedier'];?></td>
<td><?php echo $ligne['criticite'];?></td>
<td><?php echo $ligne['description'];?></td>
<td><?php echo $ligne['date'];?></td>
<td><a href="supprimer.php?id">supprimer</a></td>
</tr>
<?php } ?>
</table>

et celle là le code de la page de suppression
<?php
if(isset($_GET['id'])){

$requete=("delete from taches where id=".$id);
$resultat=mysql_query($requete);
}

?>

merci

4 réponses

  1. Utilisateur anonyme
     
    Bonjour

    Tu n'as pas mis l'id dans ton lien pour la suppression. Il faudrait mettre :
    <td><a href="supprimer.php?id=<?php echo $ligne['id'] ?>">supprimer</a></td> 
    1
    1. ia2c Messages postés 37 Statut Membre
       
      bonjour,
      merci le père pour votre aide
      j'ai corrigé ma faute mais lorsque je clic sur le lien de suppression une erreur se produit: Notice: Undefined variable: id in C:\wamp\www\projet\production\supprimer.php on line 25
      cette ligne est : $requete=("delete from taches where id=".$id);
      je l'ai changé par : $requete=("delete from taches where id='".$_GET['id']."' ");
      mais la suppression n'effectue pas et la barre d'adresse contient:
      http://localhost/projet/production/supprimer.php?id=3

      qu'est ce que je dois faire ??

      merci
      0
  2. Utilisateur anonyme
     
    As-tu bien fait la connexion à la base de données dans ta page supprimer.php ? Car a priori ta correction est bonne, même si tu as des parenthèses et des apostrophes inutiles.
    0
  3. Reivax962 Messages postés 3742 Statut Membre 1 011
     
    Bonjour,

    Pour ton deuxième problème, cela vient de ça :
    if(isset($_GET['id'])){
    
    $requete=("delete from taches where id=".$id);
    $resultat=mysql_query($requete);
    } 


    Tu utilises directement $id au lieu de $_GET['id'].
    Fais plutôt comme ceci :
    if(isset($_GET['id'])){
        $id = (int) $_GET['id'];
        $requete=("delete from taches where id=".$id);
        $resultat=mysql_query($requete);
    } 


    Xavier
    0
    1. Utilisateur anonyme
       
      Bonjour

      Lis bien toute sa réponse, il me semble qu'il avait corrigé de lui-même.
      0
    2. sipherion Messages postés 1836 Date d'inscription   Statut Membre Dernière intervention   287
       
      Et si id est au format INT dans la BDD, il vaut mieux enlever les " " à ce niveau :

      $requete=("delete from taches where id=".$_GET['id']); 
      0
    3. Reivax962 Messages postés 3742 Statut Membre 1 011
       
      Hum. Au temps pour moi, j'ai lu trop vite ^^'
      Du coup :
      - est-ce qu'il ne manquerait pas
      include("connection.php"); 
      dans la page supprimer.php ? Edit : Mais je vois que le père te l'a déjà fait remarqué... Je sers à rien :p

      - si ce n'est pas mieux, remplace
      $resultat=mysql_query($requete);
      par
      $resultat=mysql_query($requete) or die(mysql_error() . "<br />dans la requête $requete");


      Xavier
      0
    4. Reivax962 Messages postés 3742 Statut Membre 1 011
       
      Ceci dit, je maintiens mon approche, avec
          $id = (int) $_GET['id'];

      qui évite les injections SQL.
      0
    5. Utilisateur anonyme
       
      Toutafé.
      0
  4. ia2c Messages postés 37 Statut Membre
     
    bonjour,

    merci pour tous :) mon problème est bien résolue , j'ai oublié de mettre la fonction de connexion dans la page de suppression..

    enfin :D

    merci merci merci..
    0