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

Résolu
toutaonline Messages postés 8 Date d'inscription   Statut Membre Dernière intervention   -  
toutaonline Messages postés 8 Date d'inscription   Statut Membre Dernière intervention   -
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

le père
 
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
 
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   Statut Membre Dernière intervention  
 
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   Statut Membre Dernière intervention  
 
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