Suppression

Fermé
butterfly235 Messages postés 19 Date d'inscription mercredi 24 juillet 2013 Statut Membre Dernière intervention 20 août 2013 - Modifié par butterfly235 le 29/07/2013 à 20:27
jeremy.s Messages postés 1226 Date d'inscription lundi 28 mars 2011 Statut Membre Dernière intervention 2 septembre 2013 - 30 juil. 2013 à 13:04
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

Pourquoi initialiser ses variables ...

Sûrement pour faire beau :p
0
jeremy.s Messages postés 1226 Date d'inscription lundi 28 mars 2011 Statut Membre Dernière intervention 2 septembre 2013 79
30 juil. 2013 à 11:13
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
butterfly235 Messages postés 19 Date d'inscription mercredi 24 juillet 2013 Statut Membre Dernière intervention 20 août 2013
30 juil. 2013 à 12:09
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
jeremy.s Messages postés 1226 Date d'inscription lundi 28 mars 2011 Statut Membre Dernière intervention 2 septembre 2013 79
30 juil. 2013 à 13:04
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