bonsoir,svp j'ai un probleme d'affichage de données depuis ma base de données de mon site hébergé gratuitement sur un serveur web. les données s'ajoute convenablement à la base de données mais ils ne s'affichent pas avec un erreur qui est le suivant:
Warning: Invalid argument supplied for foreach() in C:\wamp\www\pfa\Candidat_1A_MASTERRITEL.php on line 22
avec la ligne 22: <?php foreach ($int as $v)
et $int:$int= $candidat->aff_candidat_int_MPRITEL_1A($c);
je suis totalement bloqué et je suis en train de préparer mon projet de fin d'année. Merci de m'aider le plutot possible et merci d'avance.
Vous pouvez remplacer votre fonction par
public function aff_candidat_int_MPRITEL_1A ($c)
{
$sql= "select * from cand_enet_1a_ma_pro where choix='mpRITEL' ORDER BY score DESC";
$obj1=$c->query($sql);
return $obj1->fetchAll(PDO::FETCH_ASSOC);
}
Avec plaisir,
include"classe/candidat.php" ;
$candidat= new candidat ;
$c= $candidat->DBconnect() ; $int= $candidat->aff_candidat_int_MPRITEL_1A($c);$ext= $candidat->aff_candidat_ext_MPRITEL_1A($c);?>
...
<?php foreach ($int as $v)
{echo "<tr><td>".$v["id_cand_enet_1a_ma_pro"]."</td> <td>".$v["cin_c"]."</td><td>".$v["nom_c"]." </td> <td>".$v["prenom_c"]." </td> <td>".$v["email_c"]."</td><td>".$v["etablissement_c"]."</td><td>".$v["diplome_c"]."</td><td>".$v["promotion_c"]."</td> ><td>".$v["score"]."</td></tr>" ;}?>
et aff_candidat_int_MPRITEL_1A($c) est une fonction présenté dans la classe mere candidat avec le code suivant:
public function aff_candidat_int_MPRITEL_1A ($c)
{ $sql= "select * from cand_enet_1a_ma_pro where choix='mpRITEL' ORDER BY score DESC";
$obj1=$c->query($sql); if ($obj1->rowcount()==0)
return "liste des candidats est vide " ;
else { while( $row=$obj1->fetch(PDO ::FETCH_ASSOC) ) {$T[]=$row ;} return $T; } }
Dans la fonction aff_candidat_int_MPRITEL_1A ($c)
La ou vous avez fait
return "liste des candidats est vide " ;
Remplacer par
return array() ;
Surement votre boucle essai de parcourir une chaine de caractère, ce qui n'est pas possible avec un foreach.
l'erreur n'existe pas lorsque je la remplacer comme vous avez me dit mais les données ne s'affiche pas encore :(
oui t'as raison il n'existe pas 'mpRITEL' se trouve dans une collonne "choix" mais elle est vide je sais pas pourquoi. je vais vérifié la fonction de choix : public function choixmaster_1A_interne ($c,$p)
{$master="update cand_enet_1a_ma_pro SET choix='".$p['choix']."' where id_cand_enet_1a_ma_pro= '".$_SESSION["id_can"]."' " ;
if($c->query($master)) return "ajout est terminé avec succes"; else return "impossible "; }
Je vous conseil d'utilisés des requetes preparé lorsque vous inserez des données dans la base de données.
En plus dans vos fonctions d'insertions, au lieu de renvoyer des chaines de caractère retourné des booleens c'est mieux.