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 : Sélectionner tout - Visualiser dans une fenêtre à part
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.