Vous êtes ici Forums > Dépôt de sources > [résolu] Supprimer un enregistrement dans mySql par php via checkbox

SUJET: [résolu] Supprimer un enregistrement dans mySql par php via checkbox
  Le 23 Déc 2009 à 22:29:32
Bonjour,:P

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...

Voici mon code :
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>


Si je clique sur le bouton Supprimer sans sélectionner un checkbox :
Notice: Undefined index: table_array in C:Inetpubwwwrootservice_clienteleunautretest.php on line 8

Et si je clique sur le bouton supprimer après avoir sélectionné 1er et 3e check box :
Notice: Undefined offset: 0 in C:Inetpubwwwrootservice_clienteleunautretest.php on line 14

Notice: Undefined offset: 1 in C:Inetpubwwwrootservice_clienteleunautretest.php on line 14

En plus, la suppression ne marche pas…no
À vos avis je fais les bêtises où ?


Il faut que je mets un isset mais où ? Comment ?

phpdos
profil du membre
Message:

Dernière réponse le
04-01-2010 à 15:03:50
par phpdos
 

  Le 24 Déc 2009 à 07:05:34
Garder en tete que les simple cotes ne sont pas valident pour du HTML. Eviter de polluer votre code en mettant du HTML dans du PHP. Le tableau passé par le form doit etre vide, passez simplement la valeur souhaité dans l'attribue value="".
Code:
<input type="checkbox" name="table_array[]" value=" <?php echo $numero;?> ">
php Sources
profil du membre
Messages: 4

 

  Le 24 Déc 2009 à 16:03:43
Évidemment, les valeurs de checkbox sont vides lorsqu’ils ne sont pas sélectionnés
Et ceux qui sont sélectionnés ont des valeurs selon id de l’enregistrement…

Cela veut dire que ceux qui ne sont pas sélectionnés posent de problème…
phpdos
profil du membre
Message:

 

  Le 25 Déc 2009 à 12:39:34
Tu as encore des problèmes ?

Fait un print_r($_POST['table_array']); pour voir ce que tu récupères avant de rentrer dans la boucle... et ca va peut-etre te paraitre "neuneu" comme code mais il y a un exemple type de case à cocher qui pourrait t'aider.
http://www.phpsources.org/scripts486-PHP.htm
KOogar
Modérateur
site web du membre profil du membre
Messages: 316

 

  Le 04 Jan 2010 à 15:03:50
En fait, il y avait un [=] dans ma requête

Code:
$sup= " DELETE FROM tb_test_checkbox WHERE numero = in (".$supp.")";


Donc je l’ai suprimé…

Code:
$sup= " DELETE FROM tb_test_checkbox WHERE numero in (".$supp.")";


et ça marche...

Merci pour ton exemple... je vais le voir pour avoir une idée...
phpdos
profil du membre
Message:

 
 
Librairie PHP

Connexion

 
 

Explications

 
 

Ressources

 
 
 
Partenaire officiel
Partenaire officiel
 
  Statistiques...
Stats du réseau:
visiteurs en ligne : 24
basées sur les utilisateurs actifs des 5 dernières minutes
membres : 18395
 
Stats du site phpsources:
Dernière mise à jour des stats
aujourd'hui à 22:56:16

codes sources : 595
scripts : 946
articles - actualités : 101
tutoriel : 34
sites sur le langage PHP : 215
commentaires : 1 952
total des scripts téléchargés: 945 487
total hits codes sources: 6 169 445