[resolu]n'arrive pas a supprimer la bonne ligne de ma bdd

n'arrive pas a supprimer la bonne ligne de ma bdd [resolu] - PHP - Programmation

Marsh Posté le 05-12-2008 à 20:29:39    

bonsoir a tous , je n'arrive pas a effacé la ligne voulut(après avoir cliquer sur supprimer) cette ligne est déterminer par $_SESSION['idpiece'] qui est le numéro de la ligne a effacé de  ma base de donnée sql, a chaque fois que je clique sur supprimer il me supprime la dernière ligne de ma bdd, je n'y comprend pas pourquoi il fait cela voici le script en quesiont:
 

Code :
  1. <?php
  2. session_start();
  3. ?>
  4. <h1>Rechercher un article (consulter,modifier,supprimer)</h1>
  5. <form action="<?php $_SERVER['PHP_SELF'] ;?>" method="post">
  6. <input type="text" name="find" value="<?php echo $_REQUEST['find'];?>"/>
  7. <input type="submit" value="rechercher"/>
  8. </form>
  9. <?php
  10. mysql_connect(....;
  11. mysql_select_db(.....;
  12. $req = mysql_real_escape_string($_POST['find']);
  13. $sql="SELECT * FROM `piece` WHERE `intitule` LIKE '%$req%' OR 'codebarre'LIKE '%$req%' ";
  14. echo ($sql);
  15. $resultat=mysql_query($sql) or die (mysql_error());
  16. while ($article=mysql_fetch_array($resultat))
  17. {
  18. $_SESSION['idpiece']=$article['idpiece'];//*ici recupération de l'idpiece*//
  19. $_SESSION['produit']=$article['intitule'];
  20. $_SESSION['codebarre']=$article['codebarre'];
  21. $_SESSION['ref']=$article['reference'];
  22. $_SESSION['prix']=$article['prix'];
  23. $_SESSION['qte']=$article['quantite'];
  24. }
  25. ?>
  26. <a><h1>voici les détait du produit <?php echo $_SESSION['produit'];?></h1></a>
  27. <a>numéro d'enregistrement :<?php echo$_SESSION['idpiece'];?></a><br/>
  28. <a>code barre:<?php echo $_SESSION['codebarre'];?></a><br/>
  29. <a>reference :<?php echo $_SESSION['ref'];?></a><br/>
  30. <a>prix:<?php echo $_SESSION['prix'];?></a><br/>
  31.   <a>quantite :<?php echo $_SESSION['qte'];?></a><br/>
  32.  
  33. <form action="<?php echo $_SERVER['PHP_SELF'];?>" method="post">
  34. <input type="submit" name="delet" value="supprimer"/>
  35. </form>
  36. <form action="modifier_produit.php" method="post">
  37. <input type="submit" name="modif" value="modifer"/>
  38. </form>
  39. <form action="enregistre_produit.php" method="post">
  40. <input type="submit" name="enregistre" value="ajouter"/>
  41. </form>
  42. <h1><?php echo $_SESSION['idpiece'];?></h1>//*ici j'affiche en gros l'idpiece*//
  43. <?php
  44. if ($_REQUEST['delet']=="supprimer" )
  45. {
  46.   $sql="DELETE FROM piece WHERE idpiece='".$_SESSION['idpiece']."'";
  47. mysql_query($sql);
  48. echo $sql;//*!!!!!! ICI C EST PAS NORMAL idpiece est egal a la dernière ligne alors que je n'ai pas chercher a supprimer cette ligne!!! *//
  49. echo "<h1>$produit à été effacé</h1>";
  50. session_destroy();
  51. mysql_close();
  52. }
  53. ?>


 
1:je recherche un article
2:une fois trouvé il m'affiche le détail
3:je clique sur supprimer , normalement avec $_SESSION['idpiece'] il me supprime la ligne de ma bdd qui correspond a idpiece mais la derrnière ligne est effacé, c'est pas celui que je voulais,a votre avis pouquoi il n'efface pas idpiece demandé??
 
merci de votre reponse


Message édité par keo64 le 06-12-2008 à 15:50:48
Reply

Marsh Posté le 05-12-2008 à 20:29:39   

Reply

Marsh Posté le 05-12-2008 à 23:32:26    

salut essai de remplacer cette ligne :
 
$sql="DELETE FROM piece WHERE idpiece='".$_SESSION['idpiece']."'";
 
par :
 
$sql="DELETE * FROM piece WHERE idpiece='".$_SESSION['idpiece']."'";


---------------
http://www.easy-ocas.com/
Reply

Marsh Posté le 06-12-2008 à 09:46:34    

easyocas a écrit :

salut essai de remplacer cette ligne :
 
$sql="DELETE FROM piece WHERE idpiece='".$_SESSION['idpiece']."'";
 
par :
 
$sql="DELETE * FROM piece WHERE idpiece='".$_SESSION['idpiece']."'";


 
Totalement à côté de la plaque.
 
ke064> le problème vient du fait qu'à chaque itération de ta boucle while ($article=mysql_fetch_array($resultat)), tu ré-écris sur les mêmes cases de $_SESSION, il va donc logiquement t'effacer la dernière


---------------
Si la vérité est découverte par quelqu'un d'autre,elle perd toujours un peu d'attrait
Reply

Marsh Posté le 06-12-2008 à 13:56:44    

merci pour ta réponse effectivemet j'ai oublité une étoile, comment je pourrais procéder pour avoir juste la ligne de ma recherche ?
 
:)

Reply

Marsh Posté le 06-12-2008 à 14:15:38    

Tu crées 1 bouton supprimer / editer par ligne de ta base de donnée, et tu lui mets un id qui va bien. Et tu laisses tes variables de session tranquilles, ça ne sert à rien dans ton cas


---------------
Si la vérité est découverte par quelqu'un d'autre,elle perd toujours un peu d'attrait
Reply

Marsh Posté le 06-12-2008 à 15:50:19    

merci de ton aide j'ai finallement enoyé vers un autre fichier qui contiendre l'effacement de la ligne rechercher:

Code :
  1. <?php
  2. session_start();
  3. $sql="DELETE  FROM piece WHERE idpiece='".$_SESSION['idpiece']."'";
  4. mysql_query($sql);
  5. echo $sql;
  6. echo "<h1>article à été effacé</h1>";
  7. echo $_SESSION['idpiece'];
  8. mysql_close();
  9. ?>


je pense que comme j'ai fait 2 fois php self ,la session idpiece a alors a cause du fetch array pointer sur la dernière ligne
 
merci encore :)

Reply

Sujets relatifs:

Leave a Replay

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