Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
976 connectés 

  FORUM HardWare.fr
  Programmation
  PHP

  Code pas totalement fonctionnel

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Code pas totalement fonctionnel

n°2226300
Sha-ka
Posté le 27-04-2014 à 12:22:40  profilanswer
 

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. <?php
  2. $db = Zend_Registry::get('database');
  3. echo "<center><h1>Plantes méllifères, aromates, fruits, légumes, salades et champignons de saison</h1></center><br /><br />";
  4. $mois = array("", "Janvier", "Février", "Mars", "Avril", "Mai", "Juin", "Juillet", "Août", "Septembre", "Octobre", "Novembre", "Décembre" );
  5. for ($i = 1; $i <= 12; $i++)
  6. {
  7.     $select1 = "SELECT * FROM saisonapicole WHERE Mois='$mois[$i]'";
  8.     $toElect1 = $db->fetchAll($select1, array(), Zend_Db::FETCH_ASSOC);
  9.     echo '<center><h3>' . $mois[$i] . '</h3></center>';
  10.     $OldCat1 = '';
  11.     foreach ($toElect1 as $elect1)
  12.     {
  13.  $Fleurs=$elect1['Fleurs'];
  14.  $Cat1 = $elect1['Categorie'];
  15.         if (($OldCat1 == '') || ($Cat1 != $OldCat1))
  16.         {
  17.             // si on est en début d'itération (OldCat vide)
  18.             // OU qu'on a changé de catégorie (OldCat et Cat différents)
  19.             // afficher le nom de catégorie ET l'aliment
  20.             echo '<br /><strong>Plantes méllifères</strong> : ' . $Fleurs;
  21.         } else
  22.         {
  23.             // sinon afficher juste l'aliment précédé d'une virgule
  24.             echo ', ' . $Fleurs;
  25.         }
  26.         $OldCat1 = $Cat1; // mettre a jour l'ancienne catégorie avec la courante pour le test a la prochaine itération
  27.     }
  28. echo "<br />";
  29. $select = "SELECT * FROM saison WHERE Mois='$mois[$i]' ORDER BY Categorie";
  30.     $toElect = $db->fetchAll($select, array(), Zend_Db::FETCH_ASSOC);
  31. $OldCat = '';
  32. foreach ($toElect as $elect)
  33.     {
  34.         $Cat = $elect['Categorie'];
  35.         $Aliment = $elect['Nom'];
  36.         if (($OldCat == '') || ($Cat != $OldCat))
  37.         {
  38.             // si on est en début d'itération (OldCat vide)
  39.             // OU qu'on a changé de catégorie (OldCat et Cat différents)
  40.             // afficher le nom de catégorie ET l'aliment
  41.             echo '<br /><strong>' . $Cat . 's</strong> : ' . $Aliment;
  42.         } else
  43.         {
  44.             // sinon afficher juste l'aliment précédé d'une virgule
  45.             echo ', ' . $Aliment;
  46.         }
  47.         $OldCat = $Cat; // mettre a jour l'ancienne catégorie avec la courante pour le test a la prochaine itération
  48.     }
  49.     echo "<br /><br />";
  50. }
  51. ?>


 
 
Les tables :  
saison : Id, Nom, Categorie, Mois
saisonapicole : Id, Fleurs, Mois, Special, Categorie
 
 
Pourriez vous m'aider à résoudre ce problème ? D'avance merci.

mood
Publicité
Posté le 27-04-2014 à 12:22:40  profilanswer
 

n°2226345
Pablo Escr​obarbe
Retour d'exil
Posté le 28-04-2014 à 09:26:10  profilanswer
 

C'est sûr que c'est pas ta base qui est pourrie ?

n°2226394
Sha-ka
Posté le 28-04-2014 à 16:19:21  profilanswer
 

Comment ça ? Du genre mal construite ?


---------------
Comment assembler & optimiser soi même son pc
n°2226395
scribou
Posté le 28-04-2014 à 16:21:57  profilanswer
 

Du genre il y a des doublons je pense ?

n°2226404
Sha-ka
Posté le 28-04-2014 à 17:26:49  profilanswer
 

Aurais-je du faire une seule table ? J'avais tenté d'abord une requête SQL impliquant les 2 tables mais ayant du mal à avoir des résultats j'ai préféré faire comme cela..


---------------
Comment assembler & optimiser soi même son pc
n°2226447
scribou
Posté le 29-04-2014 à 09:31:46  profilanswer
 

Fais voir la structure de ta bdd ;)

n°2226602
Sha-ka
Posté le 29-04-2014 à 17:19:13  profilanswer
 

saison : Id, Nom, Categorie, Mois
saisonapicole : Id, Fleurs, Mois, Special, Categorie  
 
L'id est en mediumint auto_increment, les autres sont en varchar 100.


---------------
Comment assembler & optimiser soi même son pc
n°2226699
bistouille
Posté le 30-04-2014 à 07:28:58  profilanswer
 

Sers-toi de jointures, les requêtes dans les boucles c'est le mal  :o  
 
Là rien d’étonnant tes doublons.
C'quoi la différence entre les catégories des 2 tables ? C'est leur relation ?


Message édité par bistouille le 30-04-2014 à 07:29:49
n°2226836
Sha-ka
Posté le 30-04-2014 à 17:34:21  profilanswer
 

Il n y a pas de différence pour la catégorie des 2 tables, enfin, celle de saisonapicole n'a même pas vraiment d'utilité en fait... Et niveau jointure, comme dit, j'avais tenté mais ne suis pas doué..


---------------
Comment assembler & optimiser soi même son pc

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  PHP

  Code pas totalement fonctionnel

 

Sujets relatifs
[WEB] QR CODE et identifiant uniqueretour en arrière dans le code
Interprétation d'un code javascript[AIDE] code HTML/PHP formulaire avec envoi mail automatique
code pour selection et envoi d'une vidéo à démarrer sur la TVcode complexe
PHP problème de code[C++] utiliser des classes dans mon code
javascript : window.onerror lire le code jetant une erreurCase à cocher code VBA
Plus de sujets relatifs à : Code pas totalement fonctionnel


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR