Plusieurs enregistrements à supprimer

Signaler
Messages postés
19
Date d'inscription
mardi 29 avril 2003
Statut
Membre
Dernière intervention
31 janvier 2005
-
Messages postés
19
Date d'inscription
mardi 29 avril 2003
Statut
Membre
Dernière intervention
31 janvier 2005
-
: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

Messages postés
2268
Date d'inscription
mercredi 27 novembre 2002
Statut
Membre
Dernière intervention
13 septembre 2013
3
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???"
Messages postés
19
Date d'inscription
mardi 29 avril 2003
Statut
Membre
Dernière intervention
31 janvier 2005

: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");
?>