supprimer un enregistrement dans mySql - php -checkboxBox

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : supprimer un enregistrement dans mySql - php -checkboxBox

Re: supprimer un enregistrement dans mySql - php -checkboxBox

par aspkiddy » 04 janv. 2010, 16:25

ça marche j'ai fait un isset

Code : Tout sélectionner

if(isset($_POST['table_array'])) { $Clef=$_POST['table_array']; foreach($Clef as $selectValue) { if($supp!=""){$supp.=",";} $supp.=$selectValue; } }

Re: supprimer un enregistrement dans mySql - php -checkboxBox

par aspkiddy » 23 déc. 2009, 17:50

Bonjour orgerix,

Merci pour le tuyau…

En fait, j’ai déplacé mon variable de connexion au début de mon fichier (au 1er bloc)
//connection au serveur
$cnx = mysql_connect( "localhost", "root", "4x3rabab" ) ;
//traitement de la suppressioin au debut du scrtipt : réaffichera ceux qui restent après la suppression
Alors, j’ai moins d’erreurs

Ensuite, j’ai fait la recherche dans mon tableau par print_r() comme tu disais…
Je ne le connaissais pas cette histoire…
$test_table = array ($table_array);
	print_r($test_table);
	exit();
En fait, ma table contient de valeur…

Voici quelques tests :

Quand je sélectionne 1er et 3em check box :
Array ( [0] => Array ( [1] => 1 [3] => 3 ) )

Quand je sélectionne 1er, 3e, 6e et 8e chexkbox :
Array ( [0] => Array ( [1] => 1 [3] => 3 [6] => 6 [8] => 8 ) )

Alors donc mon tableau marche…

Ensuite, j’ai eu cette erreur :
  • Notice: Undefined offset: 0 in C:\Inetpub\wwwroot\service_clientele\unautretest.php on line 14
    No database selected
Alors, j’ai ajouté au 1er bloc ma variable de $bd
//sélection de la base de données:
			$db  = mysql_select_db( " bedeidentite" ) ;
Si je clique sur le bouton Supprimer sans sélectionner un checkbox :
  • Notice: Undefined index: table_array in C:\Inetpub\wwwroot\service_clientele\unautretest.php on line 8
Si je clique sur le bouton Supprimer après avoir sélectionné 1er et 3e check box :
  • Notice: Undefined offset: 0 in C:\Inetpub\wwwroot\service_clientele\unautretest.php on line 14

    Notice: Undefined offset: 1 in C:\Inetpub\wwwroot\service_clientele\unautretest.php on line 14
et voici mon code :
<?php
//connection au serveur
$cnx = mysql_connect( "localhost", "***admin", "totto***" ) ;


//traitement de la suppressioin au debut du scrtipt : réaffichera ceux qui restent après la suppression
//il faut supprime si le bouton a été cliqué
if(isset($_POST['btn_supprimer'])){
//récupération des checkbox cochées dans un array --------nomme ------->  table_array
	$table_array=$_POST['table_array']; 
	 $i = 0;
	while ( $i < count( $table_array)){
			//sélection de la base de données:
			db  = mysql_select_db( "bedeidentite" ) ;
			
		//Mon id de l'enregistrement dans bd se nommé  numero !!!!
		$sup= " DELETE  FROM tb_test_checkbox WHERE numero= '$table_array[$i]' "; 
					//CEst pour tester si mon chekcbox marche
					//echo $i; 
					//	exit();
					// !!!!!!!!!!!!pour le moment c'est toujour zero meme si les checkbox sont selectionne!!!!!!!!!!!!!!!!!!!!
					//****************CEst pour recherche ce qui'il y a dans mon table
				  	//$test_table = array ($table_array);
  					//print_r($test_table);
     				//exit();
					// !!!!!!!!!!!!ca marche exemple : Quand je sélectionne 1er et 3em check box : message Array ( [0] => Array ( [1] => 1 [3] => 3 ) )!!!!!!!!!!!!!!!!!!!!
				
		$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>Numéro</b></font></td>
		<td width="20%"><font face="comic sans ms"><b>Nom</b></font></td>
	    <td width="35%"><font face="comic sans ms"><b>telephone(s)</b></font> </td>
	    <td><font face="comic sans ms"><b>Supprimer</b></font></td>
	 </tr>
	 <?php
	 
 
  //sélection de la base de données:
  $db  = mysql_select_db( "bedeidentite" ) ;
 
   $req=  " select numero,bd_nom,bd_telephone from tb_test_checkbox  ";
	$rep =  mysql_query($req, $cnx) or die( mysql_error() ) ;
	//affichage :
		
	while($row=mysql_fetch_row($rep)){
		$numero=$row[0];
		$nomP=$row[1];
		$bd_telephoneP=$row[2];


		echo " <tr align='center' bgcolor=#92BCOB>
				<td>$numero </td><td>$nomP</td><td>$bd_telephoneP</td><td><input type='checkbox' name='table_array[$numero]' value='$numero'></td></tr>" ;
	}
			// on affiche ainsi mes checkbox : <input type='checkbox' name='table_array[1]' value='1'> <input type='checkbox' name='table_array[2]' value='2'>

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

Re: supprimer un enregistrement dans mySql - php -checkboxBox

par orgerix » 22 déc. 2009, 22:22

J'ai déjà une piste.

Tu utilise $cnx (dans ton premier bloc php) avant de te connecter (deuxième bloc).

Sinon, pour avoir les idées plus clair, regarde ce qu'il y a dans ton tableau $_POST en faisant print_r() ou var_dump()

supprimer un enregistrement dans mySql - php -checkboxBox

par aspkiddy » 22 déc. 2009, 22:12

Bonjour :D ,
J'ai un formulaire qui affiche les résultats venu de mon mysql...

Je vais supprimer un (ou plus) enregistrement sélectionné(s): L'utilisateur coche ses chekcbox et clique sur le bouton supprimer...

Je n'arrive pas affecter les valeurs de mes checkbox dans table (array)... c'est toujours mon variable est ($i) zéro même si mes checkbox sont sélectionnés...

À vos avis je fais les bêtise où ?

Voici mon code :
<?php
//traitement de la suppressioin au debut du scrtipt : réaffichera ceux qui restent après la suppression

//il faut supprime si le bouton a été cliqué
if(isset($_POST['btn_supprimer'])){
//récupération des checkbox cochées dans un array --------nomme ------->  table_array
	$table_array=$_POST['table_array']; 
	 $i = 0;
	while ( $i < count( $table_array)){
		//Mon id de l'enregistrement dans bd se nommé  numero !!!!
		$sup= " DELETE  FROM tb_test_checkbox WHERE numero= '$table_array[$i]' "; 
					//CEst pour tester si mon chekcbox marche
					//echo $i; 
					//	exit();
					// !!!!!!!!!!!!pour le moment c'est toujour zero meme si les checkbox sont selectionne!!!!!!!!!!!!!!!!!!!!

		$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>Numéro</b></font></td>
		<td width="20%"><font face="comic sans ms"><b>Nom</b></font></td>
	    <td width="35%"><font face="comic sans ms"><b>telephone(s)</b></font> </td>
	    <td><font face="comic sans ms"><b>Supprimer</b></font></td>
	 </tr>
	 <?php
	 
    //connection au serveur
  $cnx = mysql_connect( "localhost", "***admin", "totto***" ) ;
 
  //sélection de la base de données:
  $db  = mysql_select_db( "bedeidentite" ) ;
 
   $req=  " select numero,bd_nom,bd_telephone from tb_test_checkbox  ";
	$rep =  mysql_query($req, $cnx) or die( mysql_error() ) ;
	//affichage :
		
	while($row=mysql_fetch_row($rep)){
		$numero=$row[0];
		$nomP=$row[1];
		$bd_telephoneP=$row[2];


		echo " <tr align='center' bgcolor=#92BCOB>
				<td>$numero </td><td>$nomP</td><td>$bd_telephoneP</td><td><input type='checkbox' name='table_array[$numero]' value='$numero'></td></tr>" ;
	}
			// on affiche ainsi mes checkbox : <input type='checkbox' name='table_array[1]' value='1'> <input type='checkbox' name='table_array[2]' value='2'>

	 ?>
	 </table>
	 <br>
	 <div align="center"><input type="submit" name="btn_supprimer" value="Supprimer"></div>
  </form>
Si j’active mon echo (décommanté)
echo $i; 
exit();
voici le resultat
  • Notice: Undefined offset: 0 in C:\Inetpub\wwwroot\service_clientele\unautretest.php on line 11
  • 0
sinon : lorsque je sélectionne 2 check box voici les message erreur après avoir cliqué sur le bouton supprimer
  • Notice: Undefined offset: 0 in C:\Inetpub\wwwroot\service_clientele\unautretest.php on line 11
  • Notice: Undefined variable: cnx in C:\Inetpub\wwwroot\service_clientele\unautretest.php on line 16
  • Warning: mysql_query(): supplied argument is not a valid MySQL-Link resource in C:\Inetpub\wwwroot\service_clientele\unautretest.php on line 16
Et si je ne décoche aucun chexbox voici le message erreur après avoir cliqué sur le bouton supprimer…
  • Notice: Undefined index: table_array in C:\Inetpub\wwwroot\service_clientele\unautretest.php on line 7