Suppression d'une ligne de BD(PHP/Mysql)

Résolu/Fermé
toutaonline Messages postés 8 Date d'inscription samedi 24 novembre 2007 Statut Membre Dernière intervention 12 mai 2009 - 12 mai 2009 à 10:46
toutaonline Messages postés 8 Date d'inscription samedi 24 novembre 2007 Statut Membre Dernière intervention 12 mai 2009 - 12 mai 2009 à 13:53
Bonjour,

je sais pas si c'est le bon emplacement
bref, je suis en train de créer un petit site web et j'ai un problème quant à la supression de lignes d'un tableau
j'ai crée une page php contenant un tableau qui s'alimente dynamiquement à partir de la base de données
la première colonne contient des images jouant le rôle de liens de suppression de la ligne devant laquelle elles sont mises
je veux qu'on cliquant sur l'image, la ligne correspondante se supprime de la base
voila mes deux bout de code
clavier.php ( elle affiche tous les claviers contenue dans la table materiels)

<?php
$query = "SELECT * from materiel where typ='clavier'";
$result = mysql_query($query);
while($row = mysql_fetch_row($result))
{
$idm = $row[0]; $typ = $row[1]; $marque = $row[2]; $etat = $row[3];$date_acq = $row[4]; $date_meo = $row[5]; $duree_grt = $row[6]; $id_frs = $row[7];
echo "<tr>\n
<td><a href=\"supress.php?id=\".$row[0].\"\"> <input type=\"image\" src=\"del.png\" width=\"30\" height=\"30\" alt=\"supprimer\" name=\"del_img\"></a></td>\n
<td>$idm</td>\n
<td>$typ</td>\n
<td>$marque</td>\n
<td>$etat</td>\n
<td>$date_acq</td>\n
<td>$date_meo</td>\n
<td>$duree_grt</td>\n
<td>$id_frs</td>\n
</tr>\n";
}
?>


supress.php (celle-ci doit se charger de la suppression)

<html>
<?php
$id = intval($_POST['id']);
mysql_query("DELETE FROM materiel WHERE id_m = '$id' ");
header("Location:clavier.php");
mysql_close();

?>
<body>
</body>
</html>

==> la page clavier.php se réaffiche mais rien n'est supprimé
merci de me clarifer l'erreur
je serais vraiment très reconnaissante .

--
A voir également:

4 réponses

Bonjour

Tu as une erreur ici :
$id = intval($_POST['id']); 

la variable $_POST est définie quand tu envoies des variables grâce à un formulaire avec la méthode POST
Quand tu les passes par l'url avec un ?variable=valeur, c'est $_GET['variable'] qui est défini
0
arnaudligth
12 mai 2009 à 11:24
Bonjour

T'as une erreur ici :

$id = intval($_POST['id']);

il faut mettre :

$id = intval($_GET['id']);

je suppose que tu te connectes à ta base de données avant d'exécuter les requêtes quand même...
0
toutaonline Messages postés 8 Date d'inscription samedi 24 novembre 2007 Statut Membre Dernière intervention 12 mai 2009
12 mai 2009 à 13:30
oui bien sur je fais une connxion à la base avant
sinon comment je pourrais alimenter le tableau par des lignes de la base de données
mysql_close(); n'est mise qu'une seule fois après la tenative de suprresion c-a-d dans supress.php

j'ai essayé de modifer POST par GET mais toujours le même problème
0
toutaonline Messages postés 8 Date d'inscription samedi 24 novembre 2007 Statut Membre Dernière intervention 12 mai 2009
12 mai 2009 à 13:53
je veux juste dire que mon problème est résolu suite à l'aide d'un ami
voila la solution finale et correcte pour celui qui en aura besoin
clavier.php

<?php
$query = "SELECT * from materiel where typ='clavier'";
$result = mysql_query($query);
while($row = mysql_fetch_row($result))
{$idm = $row[0]; $typ = $row[1]; $marque = $row[2]; $etat = $row[3];$date_acq = $row[4]; $date_meo = $row[5]; $duree_grt = $row[6]; $id_frs = $row[7];
echo "<tr>\n
<td>
<form method=\"post\" action=\"supress.php\">
<input type=\"hidden\" name=\"id\" id=\"id\" value=\"".$row[0]."\">
<input type=\"image\" src=\"del.png\" width=\"30\" height=\"30\" alt=\"supprimer\" name=\"del_img\">
</form>
</td>\n\n
<td>$idm</td>\n
<td>$typ</td>\n
<td>$marque</td>\n
<td>$etat</td>\n
<td>$date_acq</td>\n
<td>$date_meo</td>\n
<td>$duree_grt</td>\n
<td>$id_frs</td>\n
</tr>\n";
}
?>

supress.php(//pas d'HTLML la dedans)

<?php
// connection a la BD
mysql_connect("localhost","root","") or die("erreur de connexion au serveur");
mysql_select_db("parcinfo") or die("erreur de connexion à la base de donnees");
// si id a ete poste :
if(isset($_POST['id']) && $_POST['id']!='')
{
$id = intval(mysql_real_escape_string(($_POST['id'])));
mysql_query("DELETE FROM materiel WHERE id_m = ".$id);

}
header('location:clavier.php');
// deconnection
mysql_close();
?>

merci d'avoir pri l'initiative de voir ce sujet
0