Suppression d'une ligne dans la base mysql

Résolu
ia2c Messages postés 29 Date d'inscription   Statut Membre Dernière intervention   -  
 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
A voir également:

4 réponses

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
ia2c Messages postés 29 Date d'inscription   Statut Membre Dernière intervention  
 
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
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
Reivax962 Messages postés 3672 Date d'inscription   Statut Membre Dernière intervention   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
Utilisateur anonyme
 
Bonjour

Lis bien toute sa réponse, il me semble qu'il avait corrigé de lui-même.
0
sipherion Messages postés 1809 Date d'inscription   Statut Membre Dernière intervention   286
 
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
Reivax962 Messages postés 3672 Date d'inscription   Statut Membre Dernière intervention   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
Reivax962 Messages postés 3672 Date d'inscription   Statut Membre Dernière intervention   1 011
 
Ceci dit, je maintiens mon approche, avec
    $id = (int) $_GET['id'];

qui évite les injections SQL.
0
Utilisateur anonyme
 
Toutafé.
0
ia2c Messages postés 29 Date d'inscription   Statut Membre Dernière intervention  
 
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