Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
3383 connectés 

  FORUM HardWare.fr
  Programmation
  PHP

  [PHP + bd mysql] Supprimer le champ de ma table

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[PHP + bd mysql] Supprimer le champ de ma table

n°1014633
seb306bzh
Posté le 16-03-2005 à 15:14:14  profilanswer
 

Bonjour,
 
en php je suis en train de gérer une base de données mysql qui est sur mon PC en localhost
 
J'ai réussi à insérer des champs, à la visualisée, à faire des recherches mais je n'arrive pas à faire un truc :
 
voila quand je fais visionner le carnet d'adresse
http://img191.exs.cx/img191/3488/003ki.png
(mon tableau se rempli automatiquement en lisant la base)
 
 
J'aimerais que quand je clique sur le radiobutton correspondant j'arrive à supprimer le champ correspondant dans la base
 
J'ai essayer un truc comme ça :

Code :
  1. <?
  2. include("common.php" );
  3. include("globals.php" );
  4. generateHTMLHeader();
  5. ?>
  6. <p align="center"><b>Voici le carnet d'adresse complet</b></p>
  7. <form method="post" action="visionner.php">
  8. <?
  9. //-------------------
  10. $link = connection();
  11. $req = "SELECT * FROM personne";
  12. $result = mysql_query($req,$link);
  13. ?>
  14. <table align="center" border="1">
  15. <tr>
  16. <td><b>Nom</b></td>
  17. <td><b>Prenom</b></td>
  18. <td><b>Adresse</b></td>
  19. <td><b>Tel</b></td>
  20. <td><b>Supprimer</b></td>
  21. <?
  22. $compteur=0;
  23. while($row = mysql_fetch_row($result))
  24. {
  25. $compteur++;
  26. $nom[$compteur] = $row[1];
  27. $prenom[$compteur] = $row[2];
  28. $adresse[$compteur] = $row[3];
  29. $tel[$compteur] = $row[4];
  30. ?>
  31. <tr>
  32. <td><? echo $nom[$compteur]; ?></td>
  33. <td><? echo $prenom[$compteur]; ?></td>
  34. <td><? echo $adresse[$compteur]; ?></td>
  35. <td><? echo $tel[$compteur]; ?></td>
  36. <td><input type="radio" name="Bsupprimer" onClick="sup(<? echo $nom[$compteur] ?> );">]</td>
  37. </tr>
  38. <?
  39. }
  40. ?>
  41. </table>
  42. <p align="center"><input type="submit" name="Bvalider" value="Validation"></p>
  43. </form>
  44. <?php
  45.   //si on clique sur supprimmer
  46.   function sup($nom){
  47. echo ("<br> [dans Sup] nom = $nom <br>" );
  48. $link = connection();
  49. $req = "DELETE (id_pers,nom_pers,prenom_pers,adr_pers,tel_pers) FROM personne WHERE nom_pers='$nom')";
  50. $result = mysql_query($req,$link);
  51. echo"Suppression effectuée";
  52.   }
  53.   //return to main
  54.   returnToMain();
  55. ?>


 
En fait je sais pas si le onCLick accepte un appel à une fonction php ?  :??:  
 
comment je peux faire sinon ?  
 
 
merci  :hello:

mood
Publicité
Posté le 16-03-2005 à 15:14:14  profilanswer
 

n°1014704
skeye
Posté le 16-03-2005 à 15:39:35  profilanswer
 

Euh non.
Javascript s'exécute sur le client, php sur le serveur.
Il te faut un <form>ulaire dont la cible se chargera de la suppression en PHP.


---------------
Can't buy what I want because it's free -
n°1014771
seb306bzh
Posté le 16-03-2005 à 15:57:15  profilanswer
 

skeye a écrit :

Euh non.
Javascript s'exécute sur le client, php sur le serveur.
Il te faut un <form>ulaire dont la cible se chargera de la suppression en PHP.


Donc sur mon radio supprimer il faut que je mette qu'il ouvre un formulaire "supprime.php" ?
 
mais comment après dans ce formulaire je vais savoir c'est qu'elle champ de la table que je dois supprimer ?  :??:

n°1014811
skeye
Posté le 16-03-2005 à 16:13:03  profilanswer
 

Lis de la doc sur les formulaires html et comment les traiter en php...tu devrais vite comprendre.


---------------
Can't buy what I want because it's free -
n°1014860
seb306bzh
Posté le 16-03-2005 à 16:37:12  profilanswer
 

c'est ce que je fais mais je n'y arrive pas c'est pour ça que je poste ici ;)

n°1014861
skeye
Posté le 16-03-2005 à 16:39:45  profilanswer
 

seb306bzh a écrit :

c'est ce que je fais mais je n'y arrive pas c'est pour ça que je poste ici ;)


alors vire le onclick de tes input type="radio", et met leur des attributs value.
Puis dans ton  visionner.php fais un  

Code :
  1. print_r($_POST);


 
Ca devrait t'éclairer...


Message édité par skeye le 16-03-2005 à 16:39:57

---------------
Can't buy what I want because it's free -
n°1014876
seb306bzh
Posté le 16-03-2005 à 16:59:46  profilanswer
 

J'ai mis ça :
 

Code :
  1. <tr>
  2. <td><? echo $nom[$compteur]; ?></td>
  3. <td><? echo $prenom[$compteur]; ?></td>
  4. <td><? echo $adresse[$compteur]; ?></td>
  5. <td><? echo $tel[$compteur]; ?></td>
  6. <td><input type="radio" name="Bsupprimer" value="<? echo $nom ?>"></td>
  7. </tr>


pour que la valeur prenne le nom. C'est pas bon ?  :??:  
 
 
en tout cas j'obtient ça :
 
http://i149.exs.cx/img149/6593/003ul.png
 
Ok la variable de mon BoutonSupprimer est bien dans le tableau POST mais je sais pas c'est quel bouton et donc je sais pas c'est qu'elle champ de ma table qui devra etre supprimé :(

n°1014878
skeye
Posté le 16-03-2005 à 17:01:52  profilanswer
 

seb306bzh a écrit :

J'ai mis ça :
 

Code :
  1. <tr>
  2. <td><? echo $nom[$compteur]; ?></td>
  3. <td><? echo $prenom[$compteur]; ?></td>
  4. <td><? echo $adresse[$compteur]; ?></td>
  5. <td><? echo $tel[$compteur]; ?></td>
  6. <td><input type="radio" name="Bsupprimer" value="<? echo $nom ?>"></td>
  7. </tr>


pour que la valeur prenne le nom. C'est pas bon ?  :??:  
 
 
en tout cas j'obtient ça :
 
http://i149.exs.cx/img149/6593/003ul.png
 
Ok la variable de mon BoutonSupprimer est bien dans le tableau POST mais je sais pas c'est quel bouton et donc je sais pas c'est qu'elle champ de ma table qui devra etre supprimé :(


 
 
...et si tu faisais

Code :
  1. <tr>
  2. <td><? echo $nom[$compteur]; ?></td>
  3. <td><? echo $prenom[$compteur]; ?></td>
  4. <td><? echo $adresse[$compteur]; ?></td>
  5. <td><? echo $tel[$compteur]; ?></td>
  6. <td><input type="radio" name="Bsupprimer<? echo $nom ?>" value="<? echo $nom ?>"></td>
  7. </tr>


 
par exemple? ;)


---------------
Can't buy what I want because it's free -
n°1014893
Profil sup​primé
Posté le 16-03-2005 à 17:12:05  answer
 

c'est tt de meme la base les formulaire :  
pour gérer ta suppression, tu mets en valeur de chaque controle Radio l'id de la personne, de plus ton $compteur est inutile et tu utilises des variables supplémentaires pour rien :(javascript est à bannir)

Code :
  1. #
  2. while($row = mysql_fetch_array($result)) {
  3. ?>
  4. <tr>
  5. <td><? echo $row['nom']; ?></td>
  6. <td><? echo $row['prenom']; ?></td>
  7. <td><? echo $row['adresse']; ?></td>
  8. <td><? echo $row['tel']; ?></td>
  9. <td><input type="radio" name="Bsupprimer" value="<?= $row['id']; ?>"></td>
  10. </tr>
  11. <?
  12. }


c'est beaucoup plus lisible !
remplace juste les libellé de chaque index de tableau par celui que t'as en bdd


Message édité par Profil supprimé le 16-03-2005 à 17:13:43
n°1014895
seb306bzh
Posté le 16-03-2005 à 17:13:33  profilanswer
 

ok ça marche :
 
http://img54.exs.cx/img54/9059/005fj.png
 
 
et dernière chose (et ça devrait marcher)
 
comment je récupère la value de mon bouton supprimer pour mettreà la place des XXXX :

Code :
  1. //----------supression------------
  2. if(isset($HTTP_POST_VARS["Bsupprimer"])) {
  3. $link = connection();
  4. $req = "DELETE (id_pers,nom_pers,prenom_pers,adr_pers,tel_pers) FROM personne WHERE nom_pers='XXXXXX')";
  5. $result = mysql_query($req,$link);
  6. }

mood
Publicité
Posté le 16-03-2005 à 17:13:33  profilanswer
 

n°1014896
Profil sup​primé
Posté le 16-03-2005 à 17:14:07  answer
 

oula non, fait comme je t'ai dis, par ID !!! ta table doit avoir l'id de la personne en clé primaire, c'est pas pour rien en faire
 
de plus DELETE n'a pas besoin de champ à spécifier :
DELETE FROM table where toto=123
 
te faut donc apprendre l'HTML et le SQL(voire approfondir le PHP)


Message édité par Profil supprimé le 16-03-2005 à 17:15:39
n°1014898
skeye
Posté le 16-03-2005 à 17:15:33  profilanswer
 

seb306bzh a écrit :

ok ça marche :
 
http://img54.exs.cx/img54/9059/005fj.png
 
 
et dernière chose (et ça devrait marcher)
 
comment je récupère la value de mon bouton supprimer pour mettreà la place des XXXX :

Code :
  1. //----------supression------------
  2. if(isset($HTTP_POST_VARS["Bsupprimer"])) {
  3. $link = connection();
  4. $req = "DELETE (id_pers,nom_pers,prenom_pers,adr_pers,tel_pers) FROM personne WHERE nom_pers='XXXXXX')";
  5. $result = mysql_query($req,$link);
  6. }



 
 
On n'utilise pas $HTTP_POST_VARS mais $_POST.
Et donc, $_POST['Bsupprimer']


---------------
Can't buy what I want because it's free -
n°1014901
Profil sup​primé
Posté le 16-03-2005 à 17:16:47  answer
 

j'en rajoute, suite à mon poste précédent :  
il ne faut de plus pas utiliser un nom comme argument de suppression d'enregistrement : plusieurs personnes peuvent s'appeler DUPONT


Message édité par Profil supprimé le 16-03-2005 à 17:17:05
n°1014902
skeye
Posté le 16-03-2005 à 17:17:23  profilanswer
 


sauf s'il a spécifié dans la base que le nom était unique...mais ce serait ballot![:ddr555]


---------------
Can't buy what I want because it's free -
n°1014907
Profil sup​primé
Posté le 16-03-2005 à 17:19:15  answer
 

skeye a écrit :

sauf s'il a spécifié dans la base que le nom était unique...mais ce serait ballot![:ddr555]


auquel cas faut qu'il apprenne Merise/UML :)

n°1014918
rompi
Posté le 16-03-2005 à 17:23:17  profilanswer
 


supprimer un champ != supprimer un enregistrement :D

n°1014919
seb306bzh
Posté le 16-03-2005 à 17:24:48  profilanswer
 


ok je suis passer pas l'id  
 
http://img91.exs.cx/img91/9558/004zx.png
 
 
mais ça change rien à mon problème pour la requete de suppression
 
DELETE FROM pesonne where id=????  
 
comment je récupère mon 4 pas exemple ?  :??:

n°1014922
skeye
Posté le 16-03-2005 à 17:25:44  profilanswer
 

seb306bzh a écrit :

ok je suis passer pas l'id  
 
http://img91.exs.cx/img91/9558/004zx.png
 
 
mais ça change rien à mon problème pour la requete de suppression
 
DELETE FROM pesonne where id=????  
 
comment je récupère mon 4 pas exemple ?  :??:


 

skeye a écrit :

On n'utilise pas $HTTP_POST_VARS mais $_POST.
Et donc, $_POST['Bsupprimer']


---------------
Can't buy what I want because it's free -
n°1014928
seb306bzh
Posté le 16-03-2005 à 17:28:23  profilanswer
 

comme ça ??
 
//----------supression------------
if(isset($_POST['Bsupprimer'])) {
 $link = connection();
 $req = "DELETE FROM personne WHERE id_pers='Bsupprimer')";
 $result = mysql_query($req,$link);
}


Message édité par seb306bzh le 16-03-2005 à 17:32:56
n°1014934
Profil sup​primé
Posté le 16-03-2005 à 17:31:13  answer
 

seb306bzh a écrit :

comme ça ??
 
//----------supression------------
if(isset($_POST['Bsupprimer'])) {
 $link = connection();
 $req = "DELETE (id_pers,nom_pers,prenom_pers,adr_pers,tel_pers) FROM personne WHERE nom_pers='Bsupprimer')";
 $result = mysql_query($req,$link);
}


 
en gros :

Code :
  1. $id_suppr = isset($_POST['Bsupprimer']) ? intval($_POST['Bsupprimer']) : 0;
  2. if($id_suppr) {
  3. $req = 'DELETE FROM personne WHERE id_pers='.$id_suppr;
  4. mysql_query($req);
  5. }


ca c'est sans faille possible


Message édité par Profil supprimé le 16-03-2005 à 17:34:23
n°1014954
seb306bzh
Posté le 16-03-2005 à 17:41:32  profilanswer
 


effectivement ça fonctionne  :bounce:  
 
merci http://director.media-box.net/images/smiles/gourou.gif

n°1014967
seb306bzh
Posté le 16-03-2005 à 17:51:43  profilanswer
 

Par contre je suis obligé de rafraichir la page pour voir que la ligne a belle et bien été supprimée :(
 
y a un truc php pour rafraichir la page (ou le que le formulaire) ??


Message édité par seb306bzh le 16-03-2005 à 17:52:07
n°1014968
skeye
Posté le 16-03-2005 à 17:52:43  profilanswer
 

seb306bzh a écrit :

Par contre je suis obligé de rafraichir la page pour voir que la ligne a belle et bien été supprimée :(


:heink:
Fais la suppression avant l'affichage, et ça le fera plus! [:dawa]


---------------
Can't buy what I want because it's free -
mood
Publicité
Posté le   profilanswer
 


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  PHP

  [PHP + bd mysql] Supprimer le champ de ma table

 

Sujets relatifs
[PHP] envoie fichier pb[topic unik] [PHP] Existe t-il une fonction qui....?
PHP : vérifier si des caractères sont alphanumériques[C & HTML] Du C de l'HTML et p-e du Php, j'ai besoin d'aide...
Quel est l'equivalent d'un Update via 2 tables sous MySQL?Insertion d'une table vers une autre pour enleve les doublons (MySQL)?
[access] Ds une requete, convertir un champ texte en dateinclusion conditionnelle en PHP?
API PHP,satanisme et vieilles aplaties (recyclaid) 
Plus de sujets relatifs à : [PHP + bd mysql] Supprimer le champ de ma table


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR