Suppression d'une ligne dans la base mysql

Résolu/Fermé
ia2c Messages postés 29 Date d'inscription mercredi 21 avril 2010 Statut Membre Dernière intervention 19 février 2015 - 9 août 2014 à 16:02
 Utilisateur anonyme - 11 août 2014 à 16:07
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
9 août 2014 à 20:53
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 mercredi 21 avril 2010 Statut Membre Dernière intervention 19 février 2015
10 août 2014 à 15:38
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
10 août 2014 à 22:45
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 jeudi 16 juin 2005 Statut Membre Dernière intervention 11 février 2021 1 011
11 août 2014 à 10:56
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
11 août 2014 à 12:08
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 lundi 22 octobre 2007 Statut Membre Dernière intervention 19 décembre 2016 285
11 août 2014 à 12:12
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 jeudi 16 juin 2005 Statut Membre Dernière intervention 11 février 2021 1 011
Modifié par Reivax962 le 11/08/2014 à 12:16
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 jeudi 16 juin 2005 Statut Membre Dernière intervention 11 février 2021 1 011
11 août 2014 à 14:32
Ceci dit, je maintiens mon approche, avec
    $id = (int) $_GET['id'];

qui évite les injections SQL.
0
Utilisateur anonyme
11 août 2014 à 16:07
Toutafé.
0
ia2c Messages postés 29 Date d'inscription mercredi 21 avril 2010 Statut Membre Dernière intervention 19 février 2015
11 août 2014 à 12:33
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