Pb de suppression en PHP dans une base MYSQL
caroline
-
caroline -
caroline -
Voilà, je souhaite réussir à supprimer en PHP une ligne dans un tableau alimenté pas la base MYSQL.
Le code :
<?php
require("connexion.php3");
// On selectionne les enregistrements...
$compt=mysql_query("SELECT id,email FROM lettre ORDER BY id");
// On compte le nombre d'inscrits...
$nb=mysql_num_rows($compt);
// On affiche le nombre d'inscrits...
echo"<font size='4'color='#408040'<b>[$nb inscrits(s)]</b></font><br>";
echo"<hr size='1' color='#408040'\n>";
// On affiche les emails dans un tableau avec une boucle while et mysql_fetch_array ?>
<table>
<?
//tant qu'il y a des adresses e-mail, on affiche
while($result=mysql_fetch_array($compt)) {?>
<tr>
<td><h3><? echo"{$result['email']} ";
// un lien vers le fichier qui supprime l'email... ?>
</td></h3>
<td><? $id=$result['id']; echo"<a href=\"sup.php3?id="."{$result['id']}\">[Supprimer l'email]</a><br>"; ?>
</td>
</tr> <? } ?>
</table>
Mon fichier "sup.php3" :
<?php
require("connexion.php3");
require("voir.php3");
// suppression de l'email selectionné...
mysql_query("DELETE FROM lettre WHERE id='$id' ");
// On renvoi vers le fichier voir.php3
header("location:voir.php3");
// on ferme la connection...
mysql_close();
?>
Ce code à l'heure actuelle ne marche pas correctement. Je m'explique : il supprime bien quelque chose, mais ce quelque chose c'est la dernière ligne du tableau...
Quelqu'un aurait-il une idée par hasard ?
Merci d'avance
Caro
Le code :
<?php
require("connexion.php3");
// On selectionne les enregistrements...
$compt=mysql_query("SELECT id,email FROM lettre ORDER BY id");
// On compte le nombre d'inscrits...
$nb=mysql_num_rows($compt);
// On affiche le nombre d'inscrits...
echo"<font size='4'color='#408040'<b>[$nb inscrits(s)]</b></font><br>";
echo"<hr size='1' color='#408040'\n>";
// On affiche les emails dans un tableau avec une boucle while et mysql_fetch_array ?>
<table>
<?
//tant qu'il y a des adresses e-mail, on affiche
while($result=mysql_fetch_array($compt)) {?>
<tr>
<td><h3><? echo"{$result['email']} ";
// un lien vers le fichier qui supprime l'email... ?>
</td></h3>
<td><? $id=$result['id']; echo"<a href=\"sup.php3?id="."{$result['id']}\">[Supprimer l'email]</a><br>"; ?>
</td>
</tr> <? } ?>
</table>
Mon fichier "sup.php3" :
<?php
require("connexion.php3");
require("voir.php3");
// suppression de l'email selectionné...
mysql_query("DELETE FROM lettre WHERE id='$id' ");
// On renvoi vers le fichier voir.php3
header("location:voir.php3");
// on ferme la connection...
mysql_close();
?>
Ce code à l'heure actuelle ne marche pas correctement. Je m'explique : il supprime bien quelque chose, mais ce quelque chose c'est la dernière ligne du tableau...
Quelqu'un aurait-il une idée par hasard ?
Merci d'avance
Caro
A voir également:
- Pb de suppression en PHP dans une base MYSQL
- Forcer suppression fichier - Guide
- Base de registre - Guide
- Formules mathématiques de base - Télécharger - Études & Formations
- Easy php - Télécharger - Divers Web & Internet
- Suppression compte gmail - Guide
12 réponses
est ce que ca marche mieux si tu remplace la requete de suppression par :
mysql_query("DELETE FROM lettre WHERE id=" . $id);
mysql_query("DELETE FROM lettre WHERE id=" . $id);
caroline
Nan :o( ça me supprime tjs le dernier
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Quand tu regarde la source html de ton fichier, tu vois bien tous les liens et tous les id ?
Je parlais de mettre $id = $_GET['id'] juste avant
mysql_query("DELETE FROM lettre WHERE id='$id' ");
Fait un die($id) pour voir si l'id est bien récupéré.
Je parlais de mettre $id = $_GET['id'] juste avant
mysql_query("DELETE FROM lettre WHERE id='$id' ");
Fait un die($id) pour voir si l'id est bien récupéré.
Quand tu dis que tu as vérifié la valeur de $id, tu parles de voir.php ou sup.php ?
Parce que moi aussi je suis d'avis que le paramètre passe mal dans sup.
Un code du genre :
mysql_query("DELETE FROM lettre WHERE id=" . $_GET['id']);
ca donne quoi?
Parce que moi aussi je suis d'avis que le paramètre passe mal dans sup.
Un code du genre :
mysql_query("DELETE FROM lettre WHERE id=" . $_GET['id']);
ca donne quoi?
Ca na passe pas non plus. Ce qui est bizarre c'est qu'à la base je me suis inspirée d'un script trouvé sur le net...
Ca m'énerve lol.
Ce qui m'embête c'est que $id est remplacé par une nouvelle valeur a chaque ajout de mail dans la table, et que je ne sais pas comment faire pour qu'il le garde bien vu que je penser que l'instruction <? $id=$result['id']; echo"<a href=\"sup.php3?id="."{$result['id']}\">[Supprimer l'email]</a><br>"; ?> le gérait toute seule
Ca m'énerve lol.
Ce qui m'embête c'est que $id est remplacé par une nouvelle valeur a chaque ajout de mail dans la table, et que je ne sais pas comment faire pour qu'il le garde bien vu que je penser que l'instruction <? $id=$result['id']; echo"<a href=\"sup.php3?id="."{$result['id']}\">[Supprimer l'email]</a><br>"; ?> le gérait toute seule
Si ça n'affiche rien c'est peut etre que l'id n'est pas bien recu.
Essaie die('*'.$id.'*') pour être bien sure
Essaie die('*'.$id.'*') pour être bien sure
Oui tu le passe en paramètre mais maintenant il faut dire à ta page d'ou viennent tes variables. De $_GET, de $_POST, de $_COOKIE, de $_SESSION ?
pourquoi l'appelles-tu dans sup.php3 ?
car il me semble que dans voir.php3
tu listes tous tes enregistrements et tu affectes l'id de chacun dans $id
dans cette ligne :
<td><? $id=$result['id']; echo"<a href=\"sup.php3?id="."{$result['id']}\">[Supprimer l'email]</
et ensuite, dans sup.php3, tu supprimes l'enregistrement avec comme identifiant "$id"
$id vaut donc à ce moment la dernière valeur listée dans voir.php3
soit l'id du dernier enregistrement de la table, que tu supprimes donc
essaye de renommer les variables
dans voir.php3, change le nom de la variable transmise dans l'url :
<td><? $id=$result['id']; echo"<a href=\"sup.php3?idASupprimer="."{$result['id']}\">[Supprimer l'email]</
et dans suppr.php3, tu récupères
$idASupprimer = $_GET['idASupprimer'];
mysql_query("DELETE FROM lettre WHERE id='$idASupprimer' ");
car il me semble que dans voir.php3
tu listes tous tes enregistrements et tu affectes l'id de chacun dans $id
dans cette ligne :
<td><? $id=$result['id']; echo"<a href=\"sup.php3?id="."{$result['id']}\">[Supprimer l'email]</
et ensuite, dans sup.php3, tu supprimes l'enregistrement avec comme identifiant "$id"
$id vaut donc à ce moment la dernière valeur listée dans voir.php3
soit l'id du dernier enregistrement de la table, que tu supprimes donc
essaye de renommer les variables
dans voir.php3, change le nom de la variable transmise dans l'url :
<td><? $id=$result['id']; echo"<a href=\"sup.php3?idASupprimer="."{$result['id']}\">[Supprimer l'email]</
et dans suppr.php3, tu récupères
$idASupprimer = $_GET['idASupprimer'];
mysql_query("DELETE FROM lettre WHERE id='$idASupprimer' ");