Suppression enregistrement php-mysql

Résolu/Fermé
gahmed Messages postés 71 Date d'inscription mardi 27 novembre 2007 Statut Membre Dernière intervention 12 septembre 2018 - 21 juil. 2009 à 14:51
 gahmed - 21 juil. 2009 à 23:54
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 dimanche 3 février 2008 Statut Membre Dernière intervention 13 février 2017 894
21 juil. 2009 à 17:18
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