Suppression

butterfly235 Messages postés 21 Statut Membre -  
jeremy.s Messages postés 1248 Statut Membre -
bonjour,

j'ai un petit souci avec mon script php ,j'ai essayé de supprimer avec de checkbox les articles sélectionnés
voilà mon code :
<form method="post" action= "modifie.php">
<input id="delete" type="submit"  name="delete" value="Supprimer"/>
</form>
<center>

 <?php 



$res = $dbh->prepare("select * from article ");

$res->execute();
echo"<center>";
echo"<form action='modifie.php' method='post'><table BORDER=1 >";

echo"<tr><td>supprimer</td><td>Text</td><td>Image</td><td>Editer </td></tr>";


while($l = $res->fetch())
{
echo"<tr><td><input type='checkbox' name='checkbox[]' id='checkbox[]' value='$l[0]'>";
if(isset($_POST['supprime']))

 {
$sup=$_POST['check'];
 
$suppr = $dbh->prepare('Delete from article where id_art = :id'); 
$suppr->execute(array('id' => $sup));



}
echo"</td>
<td>$l[1]</td>";

$img = "../../assets/images/$l[2]";
   
echo"<td><center><img src='$img' width=50 height=50 ></td>

<td><a href='Mconduite.php?a=$l[0]'><img src='../images/editer.png' title='Editer'/></a></td>

</tr>";
}
echo"</table></form>";





  ?>           
<?php
 

   
 if(isset($_POST['delete'])) // from button name="delete"
 {
  $checkbox = $_POST['checkbox']; //from name="checkbox[]"
 $countCheck = count($_POST['checkbox']);
  
  for($i=0;$i<$countCheck;$i++)
  {
   $del_id  = $checkbox[$i];
   
   $suppr = $dbh->prepare('DELETE from article where id_art = $del_id'); 
   $suppr->execute();
   
   
   
  }
   
 }
?>

il m'affiche le messages d'erreurs suivants:
Notice: Undefined index: checkbox in C:\wamp\www\test\admin\Site\modifie.php on line 176
Notice: Undefined variable: countCheck in C:\wamp\www\test\admin\Site\modifie.php on line 179

2 réponses

  1. tony
     
    Pourquoi initialiser ses variables ...

    Sûrement pour faire beau :p
    0
  2. jeremy.s Messages postés 1248 Statut Membre 79
     
    Salut !

    Tu t'y prends un peu mal :
    Tu fais deux form déjà, ton premier (tout en haut) ne sers à rien.
    Ensuite le jour où tu auras beaucoup d'articles, le systeme de checkbox n'est pas très pratique ! Je te conseil de faire une liste déroulante où tu choisie quel article supprimer

    Le systeme est le suivant :

    <form method="post" action="supprimer.php">

    <label>Choisissez un article à supprimer :</label>
    <select name="idArticle">

    "SELECT id, titre FROM article"
    Pour chaque article :
    <option value="$id"> $titre </option>

    </select>
    </form>

    Et dans ton fichier supprimer PHP tu as juste à faire un DELETE FROM article where id = $_POST['idArticle']
    0
    1. butterfly235 Messages postés 21 Statut Membre
       
      Merci pour votre aide ,mais le nombre d'article est limité ,il faut que j'utilise le checkbox pour la suppression c'est pas un choix
      0
    2. jeremy.s Messages postés 1248 Statut Membre 79
       
      D'accord ! Ca change pas grand chose, au final ca revient quasi au même :)

      <form method="post" action="supprimer.php">

      <label>Cochez les article à supprimer :</label>

      "SELECT id, titre FROM article"
      Pour chaque article :
      <label><input type="checkbox" value="$id" name="idArticle[]> $titre </label>

      </form>


      Et dans ton fichier php :
      foreach($_POST['idArticle'] as $id){
      "DELETE FROM article WHERE id = $id"
      }
      0