Suppression ligne par ligne mysql en php

Salut,
j'ai débuté en php.
voilà notre pbme, j'ai crée en php une code pour supprimer une ligne précise de table demande après une confirmation en javascript,mais lorsque je clique sur supprimer cet enregistrement,tous les enregistremnts de base sont supprimé.
Voici le code:
la page supsdemande.php définir la fonction confirme en js et afficher le contenu de table:
<script language="javascript">
      function confirme( identifiant,art,date,rep )
      {
        var confirmation = confirm( "Voulez vous vraiment supprimer cet enregistrement?" ) ;
	if( confirmation )
	{
	  document.location.href = "supdde.php?cde_sce="+identifiant ;
	}
      }
    </script>
  </head>
<body>
  <?php
 
 //connection au serveur
$connect = mysql_connect( "localhost", "root", "" ) or die('erreur de connexion');
 
  //sélection de la base de données:
$db  = mysql_select_db( "gestion_stock" ) or die('base introuvable');
  //requête de selection
 $aff="select * from demande order by 'desig_sce'";
$reqt=mysql_query($aff) or die ('erreur sql'.$reqt.'<br>'.mysql_error());
  
  
while($sql=mysql_fetch_object($reqt))
   {
  
		echo($sql->cde_sce." ".$sql->desig_sce." ".$sql->type_sce." ".$sql->cde_art." ".$sql->desig_art." ".$sql->qte_dde." ".$sql->date_dde." ".$sql->resp_dde." ");
 
	
	
      printf("<a href=\"#\" onClick=\"confirme('".$sql->cde_sce."')\" >supprimer cet enregistrement</a><br>\n") ;
 
 
 }
 ?>
</body>
</html>
 
 


et la page supdde.php supprimer le ligne correspond:

<?php
  //connection au serveur:
  $cnx = mysql_connect( "localhost", "root", "" ) or die("erreur de connexion");
  
  //sélection de la base de données:
  $db = mysql_select_db( "gestion_stock" ) or die("la base est introuvable");
  
  //récupération de la variable qui va nous permettre de savoir quel enregistrement supprimer:
  $cde_sce  = $_GET["cde_sce"] ;
  /* $cde_art  = $_GET["cde_art"] ;
    $date_dde  = $_GET["date_dde"] ;
	 $resp_dde  = $_GET["resp_dde"] ;*/
  //requête SQL:
  $sql = "DELETE 
            FROM demande
	    WHERE cde_sce = '$cde_sce' " ;
      
  //exécution de la requête:
  $requete = mysql_query( $sql) ;
  
  //affichage des résultats, pour savoir si la suppression a marchée:
  if($requete)
  {
    echo('<script language="javascript">alert("La suppression à été correctement effectuée");</script>') ;
  }
  else
  {
    echo('<script language="javascript">alert("La suppression à échouée");</script>');
  }
?>
 


MERCI D'AVANCE
Configuration: Windows XP
Firefox 2.0.0.20

6 réponses

  1. Je te conseille de regarder que contient ta variable :: $cde_sce.

    <?php echo $cde_sce;?>
    Si c'est vide regarde sur ta page ou tu transmet la donnée.
    OU regarde directement sur l'url.
    Ci la variable est bien là.

    Alors le problémes vient de ta page supdde.php.
    Tient nous au courrant ;)
    0
    1. tente aussi "limit 1" à la fin de ta requête de suppression.
      0
      1. Bonjour,
        Merci bien ilyesn et Smoking bird,
        voilà j'essais vos propsitions:

        $sql = "DELETE
        FROM demande
        WHERE cde_sce = '$cde_sce' limit 1" ;
        echo $sql;

        et j'obtenir le resultat suivant:

        DELETE FROM demande WHERE cde_sce = '' limit 1

        la suppression de la 1ère ligne même si je selectionne la dernière
        0
        1. donc $cde_sce n'est pas envoyée. Pourquoi passer par un printf pour le lien et pas par echo? la valeur existe bien dans ta bdd?
          0
          1. Bonjour,
            merci bien pour votre réponse,
            utilise printf ou echo nous retourne la même resultat,
            et pour les valeurs de cde_sce existe dans la bd
            et la ligne suivante s'affiche bien
            echo($sql->cde_sce." ".$sql->desig_sce." ".$sql->type_sce." ".$sql->cde_art." ".$sql->desig_art." ".$sql->qte_dde." ".$sql->date_dde." ".$sql->resp_dde." ");
             
            0
            1. Testes la valeur de identifiant dans ta fonction javascript juste avant de l'envoyer (ou après, au choix^^)
              0