supprimer enregistrement dans bdd

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : supprimer enregistrement dans bdd

Re: supprimer enregistrement dans bdd

par afi » 04 mars 2012, 12:34

ok sirakawa c'est comme cela je l'ai compris! merci
et grand merci à tous, au plaisir de vous retrouver!!!!

Re: supprimer enregistrement dans bdd

par sirakawa » 04 mars 2012, 12:17

Le problème vient de la conception... tu demandes à ta base de données de supprimer tous les enregistrements pour lesquels le nom est dupont, c'est donc ce qu'elle fait.

Pour supprimer un enregistrement en particulier, il te faut un moyen unique de distinguer chacun d'entre eux. En général, on utilise un identifiant de façon à pouvoir dire "supprime les enregistrement dont l'id est 7" et dont on sait qu'il n'y aura qu'un seul 7 dans ta base, au lieu de "supprime les enregistrement dont le nom est dupont" et se retrouver dans ton cas :)
Je multiplie à l'infini la justesse de cette remarque, en ajoutant mon grain de sel:
Il est plus qu'aberrant de concevoir une table de "personnes" sans avoir un identificateur unique, indépendant des champs de la table. J'imagine la Sécu devant choisir entre les 10000 "dupont"...
Cet identificateur unique permet entre autres détails de faire facilement des jointures entre tables, la table des personnes et la table des formations qu'ils suivent, par exemple.
personnes:
id_personne (unique), nom, prenom
1, toto, jean
2, toto, jean (un homonyme absolu)
3, dugland, albert
4, du gland, médor
5, Brunette, julie
formations
id_formation(unique), titre....
1, culture des petits pois
2, fabrication des cornichons
peronnes_formations
id_personne (pris dans personnes), id_formation (pris dans formation)
1, 1 = toto jean suit la formation culture
1,2 = toto jean suit la formation cornichons
2,2  dugland albert  suit la formation cornichons
3,2  du gland médor  suit la formation cornichons
Les mises à jour en sont largement si!mplifiées
le changement de nom de Brunette Jolie, par exemple, ou la suppression d'une formetion
Pour l'exploitation, il suffit d'avoir
<input .... value ='$id_personne'>$nom
....

Il est extrêmement facile d'ajouter une colonne INTEGER UNIQUE autoincrement à une table, d'en faire la clef...

Je simplifie, mais une bonne lecture serait:
sql-bases-donnees/petit-rappel-normalis ... 23004.html

Re: supprimer enregistrement dans bdd

par moogli » 04 mars 2012, 11:02

Attention : les shorts tags n'étant pas la configuration par défaut de php il est plus que recommander de n'a pas les utiliser.

Donc
<?php
echo $variable;
?>
Et non
<?= $variable ?>

@+

Re: supprimer enregistrement dans bdd

par afi » 04 mars 2012, 08:44

désolé du retard, je prends note
merci

Re: supprimer enregistrement dans bdd

par orgeg » 26 févr. 2012, 16:22

Bonjour,
Si tu appelles une page pour supprimer tes données dans ta BDD tu peux écrire quelque chose comme ça :
<a href="ta_page_pour_supprimer.php?nom=<?=$data['id']?>">Supprimer</a>
Ensuite dans ta page de suppression le code :
$sql = "DELETE FROM ta_table where id=$nom";
J'espère t'avoir aidé pour ma première réponse :)

Re: supprimer enregistrement dans bdd

par afi » 26 févr. 2012, 16:19

ok tu as raison! dans mon cas j'utilise un formulaire php ci dessous, et j'utilise un checkbox pour lui demander de supprimer qu'un nom :
<p>cochez la ligne à modifier ou à supprimer!</p>
....
echo '<table border=0 cellpadding="2" cellspacing="1" >
<tr class=memo3_etiquette>
<td width=300 height=20>situation à ce jour</td>
<td width=50 height=20>supprimer</td>

</tr>';
while($result=mysql_fetch_array($sql))
{
echo '<tr><td class=data width=300 height=20>'.$result[nom'].'</td>
<td width=50 height=20><input type=checkbox name=delete[] value="'.$result['nom'].'"></td>
</tr>';
}
....

et tout cela se trouve dans un tableau:
foreach($_POST['delete'] as $val)
{
$sql="DELETE FROM sit_formation where nom='$val'";
$req= mysql_query($sql);
}
donc je n'ai pas besoins d'identifiant? ok

Re: supprimer enregistrement dans bdd

par Ryle » 26 févr. 2012, 16:00

Le problème vient de la conception... tu demandes à ta base de données de supprimer tous les enregistrements pour lesquels le nom est dupont, c'est donc ce qu'elle fait.

Pour supprimer un enregistrement en particulier, il te faut un moyen unique de distinguer chacun d'entre eux. En général, on utilise un identifiant de façon à pouvoir dire "supprime les enregistrement dont l'id est 7" et dont on sait qu'il n'y aura qu'un seul 7 dans ta base, au lieu de "supprime les enregistrement dont le nom est dupont" et se retrouver dans ton cas :)

supprimer enregistrement dans bdd

par afi » 26 févr. 2012, 15:04

bonjour, j'ai besoin de votre aide!
Voici mon script:
<?php
if(isset($_POST['supprimer_situation']))
{
   if ($_POST['delete'] == "") {
 echo '<p class=rep_info><i>cochez la ligne à supprimer !</i></p>';
 }
 else
{
foreach($_POST['delete'] as $val)
{
$sql="DELETE FROM formation where nom='$val'";
$req= mysql_query($sql); 
}
echo '<p class=rep_info>***données supprimées : <font color=#FF0000><i> '.$val.'</i></font></p>';
 } }
?>
==================
malheureusement si dans la base figure plusieurs personnes ayant le même NOM, ex. Dupont, au" submit" tous les Dupont sont effacés!
Ou est le pb?
merci!!!!!