Suppression enregistrement php-mysql

Résolu
gahmed Messages postés 71 Date d'inscription   Statut Membre Dernière intervention   -  
 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
A voir également:

2 réponses

Alain_42 Messages postés 5361 Date d'inscription   Statut Membre Dernière intervention   894
 
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
gahmed
 
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