[PHP] Formulaire de suppresion

Formulaire de suppresion [PHP] - PHP - Programmation

Marsh Posté le 16-03-2006 à 21:03:44    

Bonjour,
 
Voilà je suis en train de faire un formulaire de suppresion d'un utilisateur d'une base de données seulement j'ai un problème. Apres avoir séléctionné l'utilisateur dans une liste lorsque j'appuie sur le bouton pour le supprimer, je rentre dans une boucle sans fin (le navigateur cherche ..., il n'affiche pas mon "chatcul" ) et je ne vois vraiement pas ou cela peut clocher. Voici le code que j'ai réalisé j'espère que vous pourrez m'éclairer :)
 

Code :
  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  2. <html xmlns="http://www.w3.org/1999/xhtml">
  3. <head>
  4. <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
  5. <title>Document sans titre</title>
  6. </head>
  7. <body>
  8. <form name="update" method="post" action=<?=$_SERVER['PHP_SELF']?>>
  9. <select name="nomAbonne">
  10. <?
  11. var_dump($_POST);
  12. require_once("classe_bdd.php" );
  13. require_once("classe_abonne.php" );
  14. $connec= New BDD();
  15. $connec->connex();
  16. $i=0;
  17. if (isset($_POST['nomAbonne']))
  18. {
  19.  echo ("chatcul" );
  20.  while (($_POST['nomAbonne'])!=$array[$i]->id) {
  21.   $i++;
  22.  }
  23.  $array[$i]->supprimer($_POST['nomAbonne']);
  24.  echo ("L'abonné à été supprimé de la BDD" );
  25. }
  26. else
  27. {
  28.                //Affichage de la liste des abonnés
  29.  $query=mysql_query('SELECT * FROM ABONNE');
  30.  while ($rows=mysql_fetch_row($query))
  31.  {
  32.    $array[$i]= New abonne($rows[1]);
  33.    echo "<option value=".$array[$i]->id.">".$array[$i]->pseudo."</option>";
  34.    $i++;
  35.  }
  36. }
  37. ?>
  38.   </select>
  39.   <input type="hidden" value<?=$array?> />
  40.   <input value="Envoyer" name="Envoyer" type="submit" />
  41.  
  42. </form>
  43. </body>
  44. </html>


 
Merci d'avance.


Message édité par Eggystyle le 16-03-2006 à 21:07:56
Reply

Marsh Posté le 16-03-2006 à 21:03:44   

Reply

Marsh Posté le 16-03-2006 à 21:09:11    

Drole facon de programmer, je comprends rien  :pt1cable:

Reply

Marsh Posté le 16-03-2006 à 21:11:52    

mdrr le coup du chatcul
sinon pour ton code, c'est super bourrin j'ai du mal a tout saisir a la premiere lecture


Message édité par benamoubeach le 16-03-2006 à 21:13:04
Reply

Marsh Posté le 16-03-2006 à 21:39:49    

beh dans la premiere partie du code  
 

Code :
  1. $query=mysql_query('SELECT * FROM ABONNE');
  2.         while ($rows=mysql_fetch_row($query))
  3.         {
  4.              $array[$i]= New abonne($rows[1]);
  5.              echo "<option value=".$array[$i]->id.">".$array[$i]->pseudo."</option>";
  6.            $i++;


 
Je rempli un tableau avec les différents abonnées (le constructeur demande le pseudo donc $rows[1] de ma requête) ensuite j'affiche comme différentes valeur du SELECT  les pseudos des abonnées mais la valeur envoyé c'est leur ID ($_POST['nomAbonne'] c'est l'ID en fait)  car c'est plus propre pour la suppresion. Et apres j'aimerais qu'une fois le formulaire envoyé (donc qd isset($_POST['nomAbonne']) il me retrouve donc dans mes différents abonnés qui se trouvent dans le tableau lequel je dois supprimer.

Reply

Marsh Posté le 17-03-2006 à 10:47:47    

Code :
  1. if (isset($_POST['nomAbonne']))
  2.     {
  3.         echo ("chatcul" );
  4.         while (($_POST['nomAbonne'])!=$array[$i]->id) {
  5.             $i++;
  6.         }
  7.         $array[$i]->supprimer($_POST['nomAbonne']);
  8.         echo ("L'abonné à été supprimé de la BDD" );
  9. }


 
Ton pb est ici: lorsque tu arrives dans cette section du code a la suite d'un post, ton tableau $array n'est pas initialise.
"while (($_POST['nomAbonne'])!=$array[$i]->id)" te donne donc une belle boucle infinie.
 
pourquoi ne pas faire tt simplement un truc du genre (exemple a completer hein):
 

Code :
  1. if (isset($_POST['nomAbonne']) && !is_null($_POST['nomAbonne'])) {
  2.      mysql_query("delete from ABONNE where ABONNE.id = ".$_POST['nomAbonne']);
  3. }


 
Si vraiment tu veux utiliser des objets, ton code devrait ressembler a un truc du genre :
 

Code :
  1. if (isset($_POST['nomAbonne']) && !is_null($_POST['nomAbonne'])) {
  2.      $un_abonne = New abonne($_POST['nomAbonne']);
  3.      $un_abonne->supprimer();
  4.      unset($un_abonne);
  5. }


 
avec une logique interne a ton objet qui verifie l'existance dans la base de l'abonne, etc...

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed