Suppression ligne par ligne mysql en php

Fermé
aycha - 4 sept. 2009 à 14:24
Smoking bird Messages postés 870 Date d'inscription mardi 11 mars 2008 Statut Membre Dernière intervention 10 juillet 2011 - 8 sept. 2009 à 12:28
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
A voir également:

6 réponses

ilyesn Messages postés 31 Date d'inscription vendredi 4 septembre 2009 Statut Membre Dernière intervention 6 mars 2012 13
4 sept. 2009 à 14:44
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
Smoking bird Messages postés 870 Date d'inscription mardi 11 mars 2008 Statut Membre Dernière intervention 10 juillet 2011 58
4 sept. 2009 à 16:47
tente aussi "limit 1" à la fin de ta requête de suppression.
0
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
Smoking bird Messages postés 870 Date d'inscription mardi 11 mars 2008 Statut Membre Dernière intervention 10 juillet 2011 58
8 sept. 2009 à 11:00
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

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
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
Smoking bird Messages postés 870 Date d'inscription mardi 11 mars 2008 Statut Membre Dernière intervention 10 juillet 2011 58
8 sept. 2009 à 12:28
Testes la valeur de identifiant dans ta fonction javascript juste avant de l'envoyer (ou après, au choix^^)
0