Suppression enregistrement php-mysql

Résolu/Fermé
Signaler
Messages postés
71
Date d'inscription
mardi 27 novembre 2007
Statut
Membre
Dernière intervention
12 septembre 2018
-
 gahmed -
Bonjour,
je récupère la liste de toutes personnes dans un tableau (pour faire cela j'ai utilisé une boucle while qui récupère cette liste), sur la dernière colonne du tableau il y a un checkbox pour chaque enregistrement.
J'ai fait une requête qui permet de récupérer tous les enregistrements qu'on pourrai cocher dans un tableau. Maintenant mon problème c'est quelle condition je dois mettre pour supprimer les enregistrements que j'ai coché a travers un bouton Supprimer?

voila mon code
<form method="post">
 <table width="685" align="center">
     <tr align="center" bgcolor="#aacc19">
	    <td width="20%"><font face="comic sans ms"><b>Nom</b></font></td>
	    <td width="35%"><font face="comic sans ms"><b>Prénom(s)</b></font> </td>
	    <td width="25%"><font face="comic sans ms"><b>Statut</b></font></td>
	    <td><font face="comic sans ms"><b>Supprimer</b></font></td>
	 </tr>
	 <?php
	 
    //connection au serveur
  $cnx = mysql_connect( "localhost", "root", "" ) ;
 
  //sélection de la base de données:
  $db  = mysql_select_db( "hospital" ) ;
 
   $req=  " select nom,prenom,statut from personnel  ";
	$rep =  mysql_query($req, $cnx) or die( mysql_error() ) ;
	//affichage des résultats, pour savoir si l'insertion a marchée:
 
		
	while($row=mysql_fetch_row($rep)){
	$numP=$row[0];
	$nomP=$row[1];
	$prenomP=$row[2];
	$matens=$row[3];
	
 	echo " <tr align='center' bgcolor=#92BCOB>
		   <td>$numP </td><td>$nomP</td><td>$prenomP</td><td><input type='checkbox' name='b[]'></td>
		
		  </tr>" ;
		}
//récupération du name du checkbox 
	$b=$_POST['b']; 
//mis des checkbox choisis dans un tableau et suppression 
	 $i = 0;
while ( $i < count( $b)){
$sup= " delete from personnel";
$supp =  mysql_query($sup, $cnx) or die( mysql_error() ) ;
$i++;
}
	 ?>
	 </table>
	 <br>
	 <div align="center"><input type="submit" value="Supprimer"></div>
  </form>


m
Merci d'avance

2 réponses

Messages postés
5358
Date d'inscription
dimanche 3 février 2008
Statut
Membre
Dernière intervention
13 février 2017
895
Essayes comme ça:
<?php
//il faut metre le traitement de la suppressioin au debut du scrtipt ainsi ça te réaffichera ceux qui restent après la suppression

//de plus il ne faut faire la suppr que si le bouton a été cliqué donc:
if(isset($_POST['supprimer'])){
//récupération des checkbox cochées dans un array $b
	$b=$_POST['b']; 
	 $i = 0;
	while ( $i < count( $b)){
		$sup= " DELETE  FROM personnel WHERE numP=$b[$i]"; //je suppose que ton premier champ se nomme numP ?
		$supp =  mysql_query($sup, $cnx) or die( mysql_error() ) ;
		$i++;
	}
}
?>
<form method="post">
 <table width="685" align="center">
     <tr align="center" bgcolor="#aacc19">
	    <td width="20%"><font face="comic sans ms"><b>Nom</b></font></td>
	    <td width="35%"><font face="comic sans ms"><b>Prénom(s)</b></font> </td>
	    <td width="25%"><font face="comic sans ms"><b>Statut</b></font></td>
	    <td><font face="comic sans ms"><b>Supprimer</b></font></td>
	 </tr>
	 <?php
	 
    //connection au serveur
  $cnx = mysql_connect( "localhost", "root", "" ) ;
 
  //sélection de la base de données:
  $db  = mysql_select_db( "hospital" ) ;
 
   $req=  " select nom,prenom,statut from personnel  ";
	$rep =  mysql_query($req, $cnx) or die( mysql_error() ) ;
	//affichage :
		
	while($row=mysql_fetch_row($rep)){
		$numP=$row[0];
		$nomP=$row[1];
		$prenomP=$row[2];
		$matens=$row[3];
		
		echo " <tr align='center' bgcolor=#92BCOB>
				<td>$numP </td><td>$nomP</td><td>$prenomP</td><td><input type='checkbox' name='b[]' value='$numP'></td>
			
			  </tr>" ;
	}
			

	 ?>
	 </table>
	 <br>
	 <div align="center"><input type="submit" name="supprimer" value="Supprimer"></div>
  </form>


Il faut absolument un name=" " au bouton

et une value à la chexkbox, j'ai mis $numP qui nous ervira de condition ensuite pour supprimer
0
merci sa passe il y avait une seule erreur tu avais oubliee les codes sur la premiere requete
$sup= " DELETE  FROM personnel WHERE numP=$b[$i]";

tu devais mettre
$sup= " DELETE  FROM personnel WHERE numP= '$b[$i]' ";


Encore merci pour ton aide
0