Foreach requete SQL

Résolu/Fermé
Angelneonizz Messages postés 784 Date d'inscription mardi 9 décembre 2003 Statut Membre Dernière intervention 19 février 2018 - Modifié par Angelneonizz le 8/04/2010 à 08:22
Angelneonizz Messages postés 784 Date d'inscription mardi 9 décembre 2003 Statut Membre Dernière intervention 19 février 2018 - 8 avril 2010 à 08:28
Bonjour,

j'aimerais votre avis.
J'ai une base de donnée où des parcours sont enregistrés avec une date pour chacun d'eux.

voici la page actuelle :
http://www.rollver.fr/parcours-php-2/

le problème est que pour le moment mon code est trés basic et je fait ma requête pour chaque mois.

se qui me gène c'est le regroupement par mois.

voici le code que j'ai pour chaque mois :
   <h2 style="text-align: center;"><span style="text-decoration: underline;color: #69F;"><a href="javascript:toggleVisibility('mars')">Le mois de mars</span> :<img src="wp-content/themes/rollver_v3/images/down.gif"></a></h2></p> 
   <div id="mars" style="visibility: hidden; display: none;"> 
    <table width="80%"  border="0" cellspacing="0" cellpadding="0" align="center"> 
                  <tr bgcolor="#000000"> 
                    <td width="70%"><div align="center">Nom</div></td> 
                    <td width="15%"><div align="center">Distance</div></td> 
                    <td width="15%"><div align="center">Date</div></td> 
                  </tr> 
                <?php 
                $i = 1; 
                // Transforme une date US en FR 
                function date_fr($date){ 
                     return eregi_replace("([0-9]{4})-([0-9]{2})-([0-9]{2})","\\3-\\2-\\1",$date); 
                } 
                $sql = 'SELECT * FROM ma_table WHERE month(date)=03 order by date'; 
                $req = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error());  
                while($data = mysql_fetch_assoc($req))  
                    {  
         $id = $data['id']; 
                        $nom = $data['nom']; 
         $kml = $data['kml']; 
                        $km = $data['km']; 
                        $url = $data['url']; 
                        $date_db = $data['date']; 
                        $date = date_fr($date_db); 
                        $i++; 
                        if($i%2){ 
                            $bg = "#000000"; 
                        }else{ 
                            $bg = "#333333"; 
                        } 
                    ?> 
                  <tr bgcolor="<?php echo $bg; ?>"> 
                    <td><a href="<?php echo $kml; ?>" target="map"><?php echo $nom; ?></a><br /><a href="<?php echo $url;?>" target="_blank">Vue pleine page</a></div></td> 
                    <td><div align="center"><?php echo $km; ?> Km</div></td> 
                    <td><div align="center"><?php echo $date; ?></div></td> 
                  </tr> 
                 <?php 
                    } 
                ?> 
                </table> 
                </div><!--- fin du mois de Mars --> 

j'aimerais faire un code plus propre et où je n'aurais pas besoin de répéter ce code pour chaque mois.

j'ai pensé à faire :
$array = array( 'Mars' => '03', 'Avril' => '04', 'Mai' => '05'....);  
foreach( $array as $key => $value ) 

et faire ma requête jusqu'à se que le tableau soit vide mais je ne vois pas comment le traduire en php.

je pense que finalement ça ne doit pas être compliqué mais j'ai du mal.
Si quelqu'un veut bien m'aider un peu.

d'avance merci




Il n'y a pas de défaite si on sais en tirer des leçons !

1 réponse

Angelneonizz Messages postés 784 Date d'inscription mardi 9 décembre 2003 Statut Membre Dernière intervention 19 février 2018 137
8 avril 2010 à 08:28
ok, je suis trop con.
il fallait juste ajouter des { } aprés le foreach

désolé :p
1