Supprimer enregistrement d'une table ??

Résolu
Bonjour,
J'ai un script pour supprimer à partir d'une liste ou je coche des cases des enregistrements d 'une table mais ca ne marche pas si qq'un à une idée !!
il me retourne une erreur:
Warning: Invalid argument supplied for foreach() in C:\Program Files\EasyPHP 2.0b1\www\banniere_03\1.php on line 52

voici le code :

<html>
<head>
</head>
<body>
<?php
require("base_banniere.php");

// connection à la DB
$link=mysql_connect($dsn['hostname'], $dsn['username'],$dsn['password']) or die ("erreur connexion");
$bd=mysql_select_db($dsn['dbname'],$link);

// requête SQL qui compte le nombre total d'enregistrement dans la table et qui
//récupère tous les enregistrements
$sql = "SELECT * FROM tab_banniere";
$result=mysql_query($sql,$link);
$total= mysql_num_rows($result);

if($total)
{
echo ('<form name="suppression" method="post">');
echo ('<table bgcolor="#FFFFFF">'."\n");
echo ('<tr>');
echo ('<td bgcolor="#669999"><b><u></u></b></td>');
echo ('<td bgcolor="#669999"><b><u>Nom_banniere</u></b></td>');
echo ('<td bgcolor="#669999"><b><u>Commentaire</u></b></td>');
echo ('<td bgcolor="#669999"><b><u>Banniere</u></b></td>');
echo ('</tr>'."\n");

while($row = mysql_fetch_array($result))
{
echo ('<tr>');
echo ('<td bgcolor="#CCCCCC"><input type="checkbox" name="delete[]" value="'.$row["id_banniere"].'"></td>');
echo ('<td bgcolor="#CCCCCC">'.$row["Nom_banniere"].'</td>');
echo ('<td bgcolor="#CCCCCC">'.$row["Commentaire"].'</td>');
echo ('<td bgcolor="#CCCCCC">'.$row["Banniere"].'</td>');
echo ('</tr>'."\n");
}
echo ('</table>'."\n");
echo ('<input name="suppr" type="submit" value="supprimer">');
echo ('</form>'."\n");

}

else echo ('Pas d\'enregistrements dans cette table...');

mysql_free_result($result);

?>

<?php

foreach ($_POST["delete[]"] as $delete2)
{
mysql_query("DELETE FROM tab_banniere WHERE id_banniere = $delete2");
}
?>

</body>
</html>
Configuration: Windows XP
Firefox 2.0.0.14

3 réponses

  1. merci RackNiak

    mais a quoi sert: check_ svp
    0
    1. C'est pour distinger, mais juste l'id suffis :p
      0
  2. salut,

    foreach ($_POST["delete"] as $delete2)
    à la place de
    foreach ($_POST["delete[]"] as $delete2)
    0
    1. Bonjours,
      moi quand je fais se jore de script, jutilise une autre methode:

      <html>
      <head>
      </head>
      <body>
      <?php
      require("base_banniere.php");

      // connection à la DB
      $link=mysql_connect($dsn['hostname'], $dsn['username'],$dsn['password']) or die ("erreur connexion");
      $bd=mysql_select_db($dsn['dbname'],$link);

      // requête SQL qui compte le nombre total d'enregistrement dans la table et qui
      //récupère tous les enregistrements
      $sql = "SELECT * FROM tab_banniere";
      $result=mysql_query($sql,$link);
      $total= mysql_num_rows($result);

      if($total)
      {
      echo ('<form name="suppression" method="post">');
      echo ('<table bgcolor="#FFFFFF">'."\n");
      echo ('<tr>');
      echo ('<td bgcolor="#669999"><b><u></u></b></td>');
      echo ('<td bgcolor="#669999"><b><u>Nom_banniere</u></b></td&g­t;');
      echo ('<td bgcolor="#669999"><b><u>Commentaire</u></b></td>­;');
      echo ('<td bgcolor="#669999"><b><u>Banniere</u></b></td>')­;
      echo ('</tr>'."\n");

      while($row = mysql_fetch_array($result))
      {
      if( $_POST['check_'.$row["id_banniere"]] == $row["id_banniere"] ) // si la case existe, donc Cocher :p tu la supprimer
      {
      mysql_query("DELETE FROM tab_banniere WHERE id_banniere = ".intval($_POST['check_'.$row["id_banniere"]]) ); // intVal sert a accepter que les chiffre, si c'est autre, alors sa affiche 0 ( AntiInjectionSql :p )
      }
      else // sinon tu affiche :p
      {

      echo ('<tr>');
      echo ('<td bgcolor="#CCCCCC"><input type="checkbox" name="check_'.$row["id_banniere"].'" value="'.$row["id_banniere"].'"></td>');
      echo ('<td bgcolor="#CCCCCC">'.$row["Nom_banniere"].'</td>');
      echo ('<td bgcolor="#CCCCCC">'.$row["Commentaire"].'</td>');
      echo ('<td bgcolor="#CCCCCC">'.$row["Banniere"].'</td>');
      echo ('</tr>'."\n");
      }
      }
      echo ('</table>'."\n");
      echo ('<input name="suppr" type="submit" value="supprimer">');
      echo ('</form>'."\n");

      }
      else echo ('Pas d\'enregistrements dans cette table...');

      mysql_free_result($result);

      ?>

      </body>
      </html>

      Esperon que sa Fonctione :p
      0