Rechercher : dans
Par :

Supprimer enregistrement d'une table ??

Dernière réponse le 12 jun 2008 à 20:36:05 baltazar852000, le 12 jun 2008 à 12:50:03 
 Signaler ce message aux modérateurs

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

Meilleures réponses pour « Supprimer enregistrement d'une table ?? » dans :
Choisir son lecteur-enregistreur DVD VoirSupports DVD et standards vidéo : critères de choix La compatibilité avec les standards vidéo courants et les supports DVD sont les premiers critères de choix d’un lecteur-enregistreur DVD. Voici par ordre d’importance, une liste de points à...
Télécharger Rapidos! VoirUn peu plus complet que iCarbon, Rapidos! permet aussi de transformer votre PC en photocopieuse, mais offre des fonctionnalités supplémentaires: Enregistrement de l'image dans un fichier, outils de recadrage, correction des couleurs, etc. Le...
SQL - Modification de table VoirModification de table Il est possible de supprimer une table grâce à la clause DROP, il existe aussi des commandes moins extrêmes permettant L'ajout de colonnes La modification de colonnes La suppression de colonnes Enfin, il est possible...

1

RackNiak, le 12 jun 2008 à 13:21:03

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

Répondre à RackNiak

2

Dr Zoidberg, le 12 jun 2008 à 13:39:03

Salut,

foreach ($_POST["delete"] as $delete2)
à la place de
foreach ($_POST["delete[]"] as $delete2)

Répondre à Dr Zoidberg

3

baltazar852000, le 12 jun 2008 à 16:04:57

Merci RackNiak

mais a quoi sert: check_ svp

Répondre à baltazar852000

4

 RackNiak, le 12 jun 2008 à 20:36:05

C'est pour distinger, mais juste l'id suffis :p

Répondre à RackNiak
Collection CommentÇaMarche.net