Supression de checkbox via POST

Mammouth du PHP | 965 Messages

11 juin 2006, 16:39

j'ai fais le script suivant ;
<?php

require("connect.php");

if (isset($_POST['list']))
	{
		foreach ($_POST['list'] as $list)
			{
				$sql = "DELETE FROM `messagerie` WHERE id='".$list."' ";
				$exec = mysql_query($sql) or die ("erreur ".mysql_error());

					if ($exec != false)
						 {
							echo "Tout les message ".$id_client." ont été supprimer";
						 }
			}
	}else{
		echo "aucun message selectionné";
	}
?>
mais il m'indique que :

Code : Tout sélectionner

Warning: Invalid argument supplied for foreach() in C:\www\delmail.php on line 7
Pourtant si $_POST['list'] etait inexistant il ne passerais pas dans la premier boucle non ?

Mammouth du PHP | 19672 Messages

11 juin 2006, 17:20

As-tu essayé de faire afficher $_POST['list'] histoire de vérifier ce que contient ta variable ?
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Mammouth du PHP | 965 Messages

11 juin 2006, 17:24

Oui il me retourne bien la premiere id de la liste et le supprime sans soucis par contre quand c'est a choix multiple je voudrais tout supprimer d'un coup c'est pour ca que j'utilise foreach().

Tout semble pourtant correct au niveau des variables en tout cas, une idée ?

Mammouth du PHP | 965 Messages

11 juin 2006, 17:27

par exemple :
<?php

require("connect.php");

if (isset($_POST['list']))
	{

		$sql = "DELETE FROM `messagerie` WHERE id='".$_POST['list']."' ";
		$exec = mysql_query($sql) or die ("erreur ".mysql_error());
	
			if ($exec != false)
				 {
					echo "Tout les message ".$_POST['list']." ont été supprimer";
				 }
	
	}else{
		echo "aucun message selectionné";
	}
?>
Marche sans soucis et je ne comprends pas comment supprimer la totalité , j'ai tenter de faire un tableau en vain et je pense pas que ce soit la meilleur solution.

Mammouth du PHP | 19672 Messages

11 juin 2006, 17:30

Peut-être bien parce que ta variable n'est pas un tableau, qu'est-ce que tu en penses. Quand je te suggère de faire afficher ta variable, j'attends quand même que tu montres le résultat obtenu. Fais une sélection multiple et fais afficher.
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Mammouth du PHP | 965 Messages

11 juin 2006, 17:37

Le resultat obtenu est bien la derniere valeur qu'il faut supprimer mais pas la totalité !

Je n'avais pas compris qu'il fallait mettre en fait un tableau precedemment, finalement j'ai fais ca :
<?php

require("connect.php");

if (isset($_POST['list']))
    {
     $array = array($_POST['list']);
        foreach ($array as $list)
            {
                $sql = "DELETE FROM `messagerie` WHERE id='".$list."' ";
                $exec = mysql_query($sql) or die ("erreur ".mysql_error());

                    if ($exec != false)
                         {
                            echo "Tout les message ".$id_client." ont été supprimer";
                         }
            }
    }else{
        echo "aucun message selectionné";
    }
?>
mais toujours le même resultat en fait ce que je comprends pas c'est comment faire en sorte que mon tableau maintenant creer affecte toute les variables ...

Mammouth du PHP | 965 Messages

11 juin 2006, 17:41

par contre quand je fais ca :
 echo $array['0'].",".$array['1'].",".$array['2'];
il me retourne que la premiere valeur ... donc en fait il ne prends en compte dans les variable transmise en POST que la premiere ?

Mammouth du PHP | 965 Messages

11 juin 2006, 18:02

bon j'ai tester avec $_GET et il me retourne bien dans l'URL toute les id que je veux supprimer mais quand je fais un tableau il ne me met que le dernier, comment mettre toute les id en tableau ?

Mammouth du PHP | 19672 Messages

11 juin 2006, 18:03

La valeur de ton attribut name de la liste de ton formulaire comporte-t-elle des "[]" ? Je parie que non... Si tu veux récupérer un tableau, il faudrait faire en sorte que les valeurs sélectionnées soient stockées dans un tableau.
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Mammouth du PHP | 965 Messages

11 juin 2006, 18:13

Oui c'etait tout simplement ca oublié de mettre les crochet pour definir un tableau quel idiotie :s

Merci a toi je met [Resolu]