Supprimé des lignes de base de bonné

bonjour , ceci mon code pour afficher mes client de table client , je veux lorsque je coche des boutons de type checkbox le client sera supprimé de ma base donné .
<html>
<head>
<title></title>
</head>
<body>

<?php
include 'cnx.php';

$sql = "SELECT idclient,nom,prénom FROM client";
$result = mysql_query($sql) or die("Requete pas comprise");
$total = mysql_num_rows($result);
?>

<?php
if($total) {

?>
<h1>Liste des clients<h1>
<form method='GET' action='1.php'>
<TABLE BORDER="1">
</CAPTION>
<TR>
<TH> id </TH>
<TH> nom </TH>
<TH> prenom</TH>
<TH> choix</TH>
</TR>
<?php }
while ($row=mysql_fetch_array($result))
{
?>
<tr>

<td><?php echo $row["idclient"]." ";?></td>
<td><?php echo $row["nom"]; ?></td>
<td><?php echo $row["prénom"]; ?></td>
<td><input type='checkbox' name='sup[]' value="'.$row[idclient].'"></td>

</tr>
<?php
}
mysql_close();
?>
</form>
</table><br>
<input type="submit" value="Eliminer">

</body>
</html>

et voila le code de suppression

<?php
include 'cnx.php';
if (isset($_GET['sup']))
{

mysql_query('DELETE FROM client WHERE id=' . $_GET['sup']);
}
?>

mais je sais pas pourquoi ca marche pas :( aidez moi s'il vous plais

7 réponses

  1. Contributeur
    commence par mettre ta requête dans une variable que tu pourras afficher, ça va t'aider à comprendre ce qui ne va pas, tu pourras ensuite l'exécuter dans phpmyadmin

    il faut aussi s'assurer que $_GET['sup'] contienne bien quelque chose
    0
    1. j'ai essayer et tjrs ca marche pa
      <?php
      include 'cnx.php';

      if (isset($_GET['sup']))
      {
      $client = $_GET['sup'] ;
      mysql_query('DELETE FROM client WHERE idclient =' . $client .';');
      }
      ?>
      0
      1. Contributeur
        Tu as quoi dans $_GET['sup'] ?

        fais un print_r($_GET['sup']); pour savoir ce qu'il y a dedans.

        Ecris ça aussi pour savoir ce qu'il y a dans ta requête :
        echo $req = 'DELETE FROM client WHERE idclient =' . $client .';';
        mysql_query($req); 
        
        0
        1. voila le resulat de print_r($_GET['sup']);

          Array ( [0] => '.$row[idclient].' [1] => '.$row[idclient].' [2] => '.$row[idclient].' [3] => '.$row[idclient].' ) 1
          0
          1. Contributeur
            si tu remplaces

            <td><input type='checkbox' name='sup[]' value="'.$row[idclient].'"></td>

            par

            <td><input type='checkbox' name='sup[]' value="<?php echo $row[idclient]; ?>"></td>

            ça devrait aller un peu mieux

            il faudrait aussi que tu parcours $_GET['sup'] parce que c'est un tableau
            0
            1. Bonjour,
              C'est normal que cela ne marche pas puisque vous récupérer un array alors que vous supprimer sous forme unitaire.
              Pour que cela marche, vous devez faire une boucle, genre:
              $monArray = $_GET['sub']; 
              foreach($monArray as $id){ 
              mysql_query('DELETE FROM client WHERE id=' . $id);  
              } 
              


              PS : je vous conseille plutôt de passer par du POST pour ce genre d'action!
              0
              1. j'ai corriger mais tjrs s'amarche pas :(
                <?php
                include 'cnx.php';

                if (isset($_POST['sup']))
                {
                $monArray = $_POST['sup'];
                foreach($monArray as $id)
                {
                $sql= ('DELETE FROM client WHERE idclient=' . $id);
                mysql_query ($sql) or die ('Erreur SQL !'.$sql.'<br />'.mysql_error());

                }
                }
                ?>
                0
            2. j'ai corriger mais tjrs s'amarche pas :(
              <?php
              include 'cnx.php';

              if (isset($_POST['sup']))
              {
              $monArray = $_POST['sup'];
              foreach($monArray as $id)
              {
              $sql= ('DELETE FROM client WHERE idclient=' . $id);
              mysql_query ($sql) or die ('Erreur SQL !'.$sql.'<br />'.mysql_error());

              }
              }
              ?>
              0
              1. aidez moi s'il vous plait :(
                0
              2. Contributeur
                $sql= 'DELETE FROM client WHERE idclient=' . $id;

                ça sera mieux
                0