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 :
Vous en conviendrez ce n'est guère respectueux pour le serveur qui se mange 42 requetes pour chaque affichage de mois.
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 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--; }
Je souhaite donc sortir ma requete de la boucle for :
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
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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>');
Merci pour vos réponses
Partager