Invalid argument supplied for foreach

Résolu
Signaler
Messages postés
78
Date d'inscription
mardi 16 juin 2009
Statut
Membre
Dernière intervention
17 février 2011
-
Messages postés
78
Date d'inscription
mardi 16 juin 2009
Statut
Membre
Dernière intervention
17 février 2011
-
Bonjour !!
J'ai un problème qui me paralyse pour tout mon projet php !!
J'explique !! Dans un formulaire, je saisis diverses infos sur un bénévole, et notamment, la ou les fonctions de cette personne au sein d'une association. Pour cela, j'utilise des cases à cocher comme ceci :

Président
Secrétaire Départemental ect ...

Une fois que l'on enregistre, un requête insert dans une table le numéro du dernier bénévoles enregistré ainsi que le code de la fonction !! Plus il y a de fonctions cocher, plus il y aura d'enregistrement ! Or quand j'exécute la requête voici le message d'erreur apparaissant :

Warning: Invalid argument supplied for foreach() in C:\wamp\www\RestosDuCoeur\Nvo_Benevol_exec.php on line 47

Voici le code correspondant au message d'erreur :

//insertion des fonctions
foreach($_POST['ccf_fonction'] as $mesCases)
{
$insertFonction = "insert into t_foncbene values ($resultat[maxibene], $mesCases);";
//echo($insertFonction);
mysql_query($insertFonction) or die(mysql_error());
}

A savoir que maxibene est le résultat d'une autre requête !!
J'espère que vous pourrez m'aider !!
Merci d'avance

7 réponses

Messages postés
507
Date d'inscription
mardi 18 février 2003
Statut
Membre
Dernière intervention
22 juin 2012
2
Ha bon tu n'avais pas trouver avec ton foreach($ in $) xD

Bref d'ou sors ton $resultat['maxibene'] ?

Balance nous un peu plus de détail la c'est pas compliqué.

voici un exemple :
<form action="" method="post">
Président
Secrétaire Départemental

</form>

<?php
  if(isset($_POST['ccf_fonction']))
  {
    foreach($_POST['ccf_fonction'] as $checkbox)
    {
       // TRAITEMENT
    }
  }
?>


L0rD...
Messages postés
2480
Date d'inscription
jeudi 30 novembre 2006
Statut
Membre
Dernière intervention
14 janvier 2011
18
Salut

Il faut mettre des crochets aux noms des champs pour que ça soit considéré comme un tableau.

Président
Secrétaire Départemental


Mais je doute de la pertinence de cette utilisation... M'enfin bon...

--
Neige

Souvent la réponse à votre question se trouve dans la doc. Commencez par là ;)
Messages postés
507
Date d'inscription
mardi 18 février 2003
Statut
Membre
Dernière intervention
22 juin 2012
2
+1 avec neigedhiver il faut rajouter [] au nom de tes checkbox

A savoir également que si la case n'est pas cocher isset() retourne false



L0rD...
Messages postés
78
Date d'inscription
mardi 16 juin 2009
Statut
Membre
Dernière intervention
17 février 2011
1
Désolé mais sa ne change rien ac ou sans [] !!
Désormais j'ia juste une erreur parse error !! c tt !!
Il suffisait de remplacer le as par in !!
Messages postés
2480
Date d'inscription
jeudi 30 novembre 2006
Statut
Membre
Dernière intervention
14 janvier 2011
18
LOL

foreach ($traversable as $item){} a toujours été la syntaxe correcte, cf la doc.

--
Neige

Souvent la réponse à votre question se trouve dans la doc. Commencez par là ;)
Messages postés
78
Date d'inscription
mardi 16 juin 2009
Statut
Membre
Dernière intervention
17 février 2011
1
foreach($_POST['ccf_fonction'] as $mesCases)
{
$insertFonction = "insert into t_foncbene values ($resultat[maxibene], $mesCases);";
echo($insertFonction);
//mysql_query($insertFonction) or die(mysql_error());
}
Mon code !!
Voici le message d'erreur :
Warning: Invalid argument supplied for foreach() in C:\wamp\www\RestosDuCoeur\Nvo_Benevol_exec.php on line 47

Honnêtement, là je m'en sort plus !! Je n'arrive pas à comprendre mon erreur sachant que j'ai corrigé mon erreur dans le input comme vous me l'aviez dit !!
Pouvez-vous m'aider ??
Messages postés
78
Date d'inscription
mardi 16 juin 2009
Statut
Membre
Dernière intervention
17 février 2011
1
Merci beaucoup !!
Sa marche maintenant !! Tu m'enlève une sacré épine du pied !!
Je vais pouvoir continuer mon projet !!
++