PHP|Débutant :: Forums

Advertisement

Besoin d'aide ? N'hésitez pas, mais respectez les règles

Vous n'êtes pas identifié(e).

#1 22-12-2009 21:19:25

phpdos
Membre
Inscription : 22-12-2009
Messages : 72

supprimer un enregistrement dans mySql par php via checkbox

Bonjour,
J'ai avancé pas mal mais je suis bloqué un peu : 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...


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

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>
 
 

Si j’active mon print_r (décommanté) pour voir ce qu'il y a à l'intérieur de ma table (array)

$test_table = array ($table_array);
                      print_r($test_table);
                     exit();

Quand je sélectionne 1er et 3em check box :
voici le resultat

message Array ( [0] => Array ( [1] => 1 [3] => 3 ) )

Alors donc mon tableau marche…:)

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


Est ce que vous avez une idée : pourquoi je ne peux pas supprimer ?:rolleyes:

Dernière modification par phpdos (23-12-2009 17:41:29)


Brave autiste
Cl... clown
Cl ? Cl ? Est-ce que j'ai une gueule de clowns ?
                  @*|*@

Hors ligne

#2 28-12-2009 17:41:47

Maskime
Membre
Lieu : Paris 15ème
Inscription : 11-05-2009
Messages : 134
Site Web

Re : supprimer un enregistrement dans mySql par php via checkbox

Hello,

Essaye de faire un foreach() à la place de ton while() :


foreach($table_array => $iId)
 

Et tu passes $iId à ta requête de suppression.

Bonne chance


La programmation est composée de 80% de réflexion pour 20% de syntaxe -> réfléchissez à votre problème par étapes

Recommande l'utilisation du pattern Singleton
Si jamais je poste un morceau de code pour vous aider, prenez bien compte que je n'ai pas forcément testé le code que je poste et qu'il est possible qu'il contienne des erreurs wink

Hors ligne

#3 04-01-2010 15:23:22

phpdos
Membre
Inscription : 22-12-2009
Messages : 72

Re : supprimer un enregistrement dans mySql par php via checkbox

Merci Maskime,

J'ai fait isset et ça marche

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

Brave autiste
Cl... clown
Cl ? Cl ? Est-ce que j'ai une gueule de clowns ?
                  @*|*@

Hors ligne

#4 21-03-2010 03:32:56

SAAD207
Membre
Inscription : 21-03-2010
Messages : 40

Re : supprimer un enregistrement dans mySql par php via checkbox

svp file moi le code entier je suis dans un cas tres semblable merci

Hors ligne

#5 21-03-2010 09:50:24

xTG
GrandGourou
Inscription : 18-06-2009
Messages : 1 127
Site Web

Re : supprimer un enregistrement dans mySql par php via checkbox

Le code est en entier...

Hors ligne

Pied de page des forums