Code pas totalement fonctionnel
Bonjour,
Je tente de faire apparaitre les plantes mellifères, fruits et légumes des mois en cours, mais j'ai un petit souci au niveau des plantes mellifères, autant les 2 premiers mois tout s'affiche nickel, autant par la suite ils se répètent une puis à plusieurs reprises, pour mieux visualiser le problème, voici la page en question : http://co-nexion.com/page/allsaisons
Le code
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51
| <?php
$db = Zend_Registry::get('database');
echo "<center><h1>Plantes méllifères, aromates, fruits, légumes, salades et champignons de saison</h1></center><br /><br />";
$mois = array("", "Janvier", "Février", "Mars", "Avril", "Mai", "Juin", "Juillet", "Août", "Septembre", "Octobre", "Novembre", "Décembre" );
for ($i = 1; $i <= 12; $i++)
{
$select1 = "SELECT * FROM saisonapicole WHERE Mois='$mois[$i]'";
$toElect1 = $db->fetchAll($select1, array(), Zend_Db::FETCH_ASSOC);
echo '<center><h3>' . $mois[$i] . '</h3></center>';
$OldCat1 = '';
foreach ($toElect1 as $elect1)
{
$Fleurs=$elect1['Fleurs'];
$Cat1 = $elect1['Categorie'];
if (($OldCat1 == '') || ($Cat1 != $OldCat1))
{
// si on est en début d'itération (OldCat vide)
// OU qu'on a changé de catégorie (OldCat et Cat différents)
// afficher le nom de catégorie ET l'aliment
echo '<br /><strong>Plantes méllifères</strong> : ' . $Fleurs;
} else
{
// sinon afficher juste l'aliment précédé d'une virgule
echo ', ' . $Fleurs;
}
$OldCat1 = $Cat1; // mettre a jour l'ancienne catégorie avec la courante pour le test a la prochaine itération
}
echo "<br />";
$select = "SELECT * FROM saison WHERE Mois='$mois[$i]' ORDER BY Categorie";
$toElect = $db->fetchAll($select, array(), Zend_Db::FETCH_ASSOC);
$OldCat = '';
foreach ($toElect as $elect)
{
$Cat = $elect['Categorie'];
$Aliment = $elect['Nom'];
if (($OldCat == '') || ($Cat != $OldCat))
{
// si on est en début d'itération (OldCat vide)
// OU qu'on a changé de catégorie (OldCat et Cat différents)
// afficher le nom de catégorie ET l'aliment
echo '<br /><strong>' . $Cat . 's</strong> : ' . $Aliment;
} else
{
// sinon afficher juste l'aliment précédé d'une virgule
echo ', ' . $Aliment;
}
$OldCat = $Cat; // mettre a jour l'ancienne catégorie avec la courante pour le test a la prochaine itération
}
echo "<br /><br />";
}
?> |
Les tables :
saison : Id, Nom, Categorie, Mois
saisonapicole : Id, Fleurs, Mois, Special, Categorie
Pourriez vous m'aider à résoudre ce problème ? Je sais que les tables ne sont pas optimales mais je ne suis pas doué en jointures... D'avance merci.