Déjà, je débute en programmation, je suis les cours php de Mathieu et Mikael, mais à mon niveau, je ne trouve pas de solution à mon problème (des heures que je cherche et fais des tests). Donc désolé si ma question semble évidente.
Pour vous résumer la situation : Je veux afficher dans un tableau le nom tous les lieux d'une zone donnée ainsi que toutes les ressources PAR lieu.
<!-- On récupère tout le contenu de la table Lieux-->
<?php
$sqlQuery = "SELECT * FROM `lieux` WHERE `zone_id` = :idzone ORDER BY `nom_lieu`";
$lieuxStatement = $dbAlandara->prepare($sqlQuery);
$lieuxStatement->execute(['idzone' => $idzone[0]]);
$lieux = $lieuxStatement->fetchAll();
// On affiche chaque lieu un à un
foreach ($lieux as $lieu) {
?>
<hr>
<table>
<tr>
<!--Affichage du nom du lieu en cours--> <td><?php echo $lieu['nom_lieu'];?></td>
<td><?php
// On recherche toutes les ressources pour le lieu en cours
$rchrss = "SELECT * FROM lieux
JOIN lieux_ressources ON lieux.id_lieu = lieux_ressources.lieu_id
JOIN ressources ON ressources.id_rss = lieux_ressources.rss_id
WHERE lieux.id_lieu = :lieu";
$rssStatement = $dbAlandara->prepare($rchrss);
$rssStatement->execute(['lieu' => $lieu['id_lieu']]);
$rss = $rssStatement->fetch();
//affichage de toutes les ressources pour le lieu en cours
foreach ($rss as $rs) {
echo $rs['nom_rss'].'</br>';
}
?></td>
</tr>
</table>
<?php
}
?>
Le nom du lieu s'affiche sans problème, le soucis vient de la deuxième boucle foreach. ça me sort un Warning: Illegal string offset 'nom_rss' sur la ligne 27
j'utilise peut-être (certainement) mal foreach, peut-être y a-t-il un moyen plus adapté... Je ne sais pas, je suis à bout d'idées.
Tu peux passer le sujet à "résolu" (bouton en haut à droite du sujet) et cliquer sur les pouces levés des messages qui t'ont aidé⋅e
problème de boucle
× Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
× Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
julp.fr ~ PHP < 8.0.0 : activer les erreurs PDO/SQL ~ PHP < 8.1.0 : activer les erreurs mysqli