Plusieurs enregistrements à supprimer

knas74 Messages postés 19 Date d'inscription mardi 29 avril 2003 Statut Membre Dernière intervention 31 janvier 2005 - 15 août 2004 à 05:52
knas74 Messages postés 19 Date d'inscription mardi 29 avril 2003 Statut Membre Dernière intervention 31 janvier 2005 - 15 août 2004 à 14:57
:question)
nas
je n'arrive pas à supprimer plusieurs enregistrements à la fois avec ce code :

foreach ($id as $index)
{ $sql "DELETE FROM table WHERE Id '$index'";
$query = mysql_query($sql)or die ("Requête incorrecte");
}

$id étant le querystring qui contient la liste des enregistrements à supprimer

http://dossier/send.php?id=15&id=14&id=13&id=4
avec cette exemple je supprime l'enregistrement avec l'identifiant 15, 14, 13 et 4 lorsque j'exécute la suppression j'ai le message d'erreur suivant:
Warning: Invalid argument supplied for foreach() in c:\dossier\send.php on line 11

avec la commande foreach, le code s'attend à avoir un tableau peut-être je n'arrive pas à résoudre le problème quelqu'un pourrait-il m'aider en vous remerciant d'avance

2 réponses

coockiesch Messages postés 2268 Date d'inscription mercredi 27 novembre 2002 Statut Membre Dernière intervention 13 septembre 2013 4
15 août 2004 à 11:28
Salut!
Dans ton cas, $_GET['id'] n'est pas considéré comme un tableau...

Ce que tu peux faire:
- faire un foreach($_GET as $var) pour récupérer toutes les valeurs passées par l'url (donne leur des noms différents)

- Enregistre le tableau des id dans une variable de session

C'est mieux d'utiliser une seule requête que tu peux faire comme ca:
(type: DELETE FROM table WHERE id='1' OR id='2' OR id='4' ...
// $_SESSION['index'] : tableau des ids
$sql = "DELETE FROM table WHERE id='" . $_SESSION['index'][0] . "'";
for($i = 1; $i < count($_SESSION['index']); $i++)
$sql .= " OR id='" . $_SESSION['index'][$i] . "'";


@++

R@f

www.allpotes.ch: Photos, humour, vidéos, gags, ...

"On dit que seulement 10 personnes au monde comprenaient Einstein. Personne ne me comprends. Suis-je un génie???"
0
knas74 Messages postés 19 Date d'inscription mardi 29 avril 2003 Statut Membre Dernière intervention 31 janvier 2005
15 août 2004 à 14:57
:question)
nas
je te remercie pour ton aide j'ai essayé avec un code que j'ai obtenue sur ce site même et j'en remercie le propriétaire
et je vais essayé le tien et merci encore
<?php
$mysql_link = mysql_connect('localhost','','');
mysql_select_db('prieres',$mysql_link);
$mysql_result = mysql_query("SELECT * FROM events") or print("Erreur de connexion");
?>
<form action="" method="post">
<?php
while($row = mysql_fetch_row($mysql_result))
{
$var = $row[0];
$date = $row[1];
?>
----
>
<?php echo "".$date.""; ?>, </td>
<?php
}
?>
----


</form>
<?php
$mysql_link = mysql_connect('localhost','','');
mysql_select_db('prieres',$mysql_link);
while (list($key, $tab) = each($HTTP_POST_VARS))
while (list($key, $val) = @each($tab))
$mysql_result = mysql_query("DELETE FROM events where idevent='$val' ") or print("Erreur de connexion");
?>
0
Rejoignez-nous