[Conception] Calendrier, affichage d'évènement
Salut à tous,
Grâce à une fonction trouver sur internet j'ai pu réaliser un calendrier sur lequel j'affiche des événement contenu dans une bases de données.
Pour le moment voici ce que j'avais fait :
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
| for($i=1;$i<=42;$i++)
{
if($i % 7 == 1 ) //si il reste un, on commence forcement une nouvelle ligne
{
echo "<tr>";
}
if(($dp <= $i)&&($jour_actuel <= $nbjour))//si nous sommes apres le numero du premier jour et que nous n avons pas
{ //passé le 30 ou 31
$time_dujour = mktime(1,1,1,$mois,$jour_actuel,$annee);
// Récupération des évènements de la base de données
$requete = 'SELECT * FROM calendrier WHERE date_debut = $time_dujour';
$envoi=mysql_query($requete) or die ('Erreur sur la requête <b>'.$requete.'</b> : <span style="color: red;">'.mysql_error().'</span>');
while($data=mysql_fetch_array($envoi))
{
$titre = $data['titre'];
$date_debut = $data['date_debut'];
$date_fin = $data['date_fin'];
$periode = ($date_fin - $date_debut); // Calcul le nombre de jour de location
$periode = ($periode/86400)+1;
}
if(($date_debut==$time_dujour))
echo '<td bgcolor="#E65049"><b>'.$jour_actuel.'</b><br>'.$titre.'</td>' ;
elseif($periode>0)
echo '<td bgcolor="#E65049"><b>'.$jour_actuel.'</b><br>'.$titre.'</td>' ;
else
echo '<td bgcolor="#00CC66"><b>'.$jour_actuel.'</b><br>'.$time_dujour.'</td>' ; //on affiche
$jour_actuel++;
if($periode>0)
$periode--;
} |
Vous en conviendrez ce n'est guère respectueux pour le serveur qui se mange 42 requetes pour chaque affichage de mois.
Je souhaite donc sortir ma requete de la boucle for :
Code:
1 2
| $requete = 'SELECT * FROM calendrier';
$envoi=mysql_query($requete) or die ('Erreur sur la requête <b>'.$requete.'</b> : <span style="color: red;">'.mysql_error().'</span>'); |
Jusque là tout va bien. Mais la ou je bloque c'est comment mettre le résultat de ma requete (donc par exemple mes 50 événements ) dans une variable mais surtout comment parcourir ce tableau dans ma boucle for afin d'arriver au même résultat que mes 42 requetes
Merci pour vos réponses