Problème du boucle while en PHP

sampleroro
Invité n'ayant pas de compte PHPfrance

11 août 2011, 11:39

Bonjour,

Voilà je met en place un calendrier d'évènement et je bloque sur l'affichage des nombres d'évènement par date et par mois.
le but c'est d'afficher le nombre d'evenement par date. J'arrive bien à les affiché mais en nombre multiple a cause de "while".

exemple :
pour la date du 9 Aôut j'ai deux events et le code m'affiche : nb event = 2 nb event = 2
pour la date du 20 Aôut j'ai quatre events et le code m'affiche : nb event = 4 nb event = 4 nb event = 4 nb event = 4
pour la date du 8 Aôut j'ai qu'un seul event et le code m'affiche : nb event = 1


Ma question c'est comment n'affiché qu'une seule fois mon résultat. sans l'enlever dans la boucle?

ci-dessous mon code :

Code : Tout sélectionner

$nbt = mysql_query("SELECT * FROM calendar_events WHERE stat=0"); while($devent = mysql_fetch_array($nbt)) { $nbt2 = mysql_query("SELECT nb FROM calendar_events WHERE stat=0 AND event_day=".$devent["event_day"]." AND event_month=".$devent["event_month"].""); $Fnbt = mysql_num_rows($nbt2); $event = $calendar->event() ->condition('month', $devent["event_month"]) ->condition('day', $devent["event_day"]) ->title('Tâches à faire') ->output($Fnbt) //nombre d'event ->add_class('custom-event-class'); // affichage de l'event dans le calendrier $calendar->attach($event); }



Merci de votre aide. :)

ViPHP
ViPHP | 2577 Messages

11 août 2011, 14:45

Bonjour,

Il faudrait faire :
select eventday, eventmonth, eventyear, count(*) from event where stat = 0 groupe by eventday, eventmonth, eventyear
Tu auras ainsi la date et le nombre en une seul requete.

Dans ton cas tu compte le nombre d'enregistrement pour chaque enregistrement, d'ou l'utilité du group by