Erreur Warning

Résolu
labourette Messages postés 657 Date d'inscription   Statut Membre Dernière intervention   -  
labourette Messages postés 657 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,

J'ai des cases à cocher lorsque je coche tout fonctionne super, mais losque je ne sélectionne aucune case cela me retourne cette erreur.
Je ne comprend pas, pouvez vous m'expliquer ce que ça veut dire, je vous met mon code.
En vous remerciant beaucoup.
Merci

Warning: Invalid argument supplied for foreach() in....

Avec ce code je récupére les valeurs des checkbox

	$resultats2 = $bdd->query("SELECT * FROM tb_categorie_statut");
		foreach ($resultats2 as $donnees)
		{
			echo"<tr>";
			echo"<td width='25%'>".$donnees['categorie_statut']."</td>";
			echo"<td width='25%'><input type='checkbox' name='categorie_statut[]' value='".$donnees['id_categorie_statut']."'></td>";
		}
	$resultats2->closeCursor();



$adherent_insert = $bdd->lastInsertId();

foreach($PARAM['CATEGORIE_STATUT'] as $categorie_statut){
				$sql = "INSERT INTO tb_gestion_admin (rid_adherent, rid_categorie_statut)
				VALUES (:rid_adherent, :rid_categorie_statut)";

			$requete = $bdd->prepare($sql);
			$requete->bindParam(':rid_adherent',			$adherent_insert);
			$requete->bindParam(':rid_categorie_statut',	$categorie_statut);			
			$requete->execute();
}


6 réponses

Pitet Messages postés 2826 Date d'inscription   Statut Membre Dernière intervention   527
 
Salut,

Il faudrait préciser le numéro de ligne à la fin de ton message d'erreur.

Ton problème vient soit de la variable $resultats2 ou de $PARAM['CATEGORIE_STATUT'] qui ne sont pas sous la forme d'un tableau : donc impossible de les parcourir avec foreach.

Bonne journée
0
labourette Messages postés 657 Date d'inscription   Statut Membre Dernière intervention   6
 
Bonjour

Merci de ton retour
C'est cette ligne qui est concernée
foreach($PARAM['CATEGORIE_STATUT'] as $categorie_statut){

Tu peux me dire comment je peux faire une boucle avec mon exemple pourtant les valeurs sont bonne je ne comprend pas.
Merci si tu peux me donner un coup de pouce
0
labourette Messages postés 657 Date d'inscription   Statut Membre Dernière intervention   6
 
Bonjour
Excusez moi mais j'aurai vraiment besoin d'un coup de main pour mes chekbox.

Alors voilà où j'en suis exactement...
J'ai créé mes cases à cocher avec le contenu d'une table
 $sql = "SELECT * FROM tb_categorie_statut";
 $resultat1 = $bdd->prepare($sql);       
 $resultat1->execute();
  while ($donnees = $resultat1->fetch(PDO::FETCH_ASSOC))
  {
   echo"<tr>";
   echo"<td width='25%'>".$donnees['categorie_statut']."</td>";
   echo"<td width='25%'><input type='checkbox' name='categorie_statut[]' value='".$donnees['id_categorie_statut']."'></td>";
  }
 $resultat1->closeCursor();

Ensuite je souhaite faire un INSERT pour récupérer mes cases à cocher dans ma BDD mais dans ma table tb_gestion_admin l'INSERT ne joue pas son role et je suis bloqué sans savoir d'où viens le problème.
Merci de votre aide.
$adherent_insert = $bdd->lastInsertId();

 if (isset($_POST['categorie_statut'])){
  foreach($PARAM['CATEGORIE_STATUT'] as $categorie_statut){
  
    $sql = 'INSERT INTO tb_gestion_admin (rid_adherent, rid_categorie_statut)
    VALUES (:rid_adherent, :rid_adherent)';

   $requete = $bdd->prepare($sql);
   $requete->bindParam(':rid_adherent',             $adherent_insert);
   $requete->bindParam(':rid_categorie_statut', $categorie_statut);   
   $requete->execute();
 
    $sql = "INSERT INTO tb_gestion_membre(rid_adherent, actif, non_actif, sortant, annee_admission, annee_demission)
    VALUES (:rid_adherent, :actif, :non_actif, :sortant, :annee_admission, :annee_demission)";
   
   $requete = $bdd->prepare($sql);
   $requete->bindParam(':rid_adherent',           $adherent_insert);
   $requete->bindParam(':actif',                         $PARAM['ACTIF']);
   $requete->bindParam(':non_actif',                 $PARAM['NON_ACTIF']);
   $requete->bindParam(':sortant',                    $PARAM['SORTANT']);
   $requete->bindParam(':annee_admission',    $PARAM['ANNEE_ADMISSION']);
   $requete->bindParam(':annee_demission',    $PARAM['ANNEE_DEMISSION']);
   $requete->execute();
  }
 }
   break;
0
Pitet Messages postés 2826 Date d'inscription   Statut Membre Dernière intervention   527
 
As tu des messages d'erreurs ? (affichage des erreurs php et des erreurs pdo)

Utilise var_dump() pour vérifier ce que contient tes variables tout au long de ton code.
Comment est construite ta variable $PARAM ?
Tu vérifies que $_POST['categorie_statut'] existe mais tu ne l'utilises pas, est-ce normal ?
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
labourette Messages postés 657 Date d'inscription   Statut Membre Dernière intervention   6
 
Bonjour

En fait j'ai créé un tableau
$PARAM = array
(
.......
'CATEGORIE_STATUT'=> isset($_POST['categorie_statut']) ? $_POST['categorie_statut'] : '',
...........
);

Après avoir fait un var_dump ça me retourne ceux ci a priori ça me retourne un tableau tu peux m'en dire un peu plus s'il te plait. Merci
array
  0 => string '2' (length=1)

Je n'ai aucun autre message d'erreur
0
labourette Messages postés 657 Date d'inscription   Statut Membre Dernière intervention   6
 
Bonjour
Merci à vous j'ai réussi à faire ce que je souhaitais.
Cordialement
0