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 windows - Guide
- Expert php - Télécharger - Langages
- Suppression compte google - Guide
- 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 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
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' ");