[ciapug] Iterating an empty result set
Tony Bibbs
tony at tonybibbs.com
Thu Feb 2 09:40:31 CST 2006
Something like this?
for ($i=0; $i < 5; $i++) {
if ($events->EOF) {
// print blank boxes
} else {
// print data in boxes
}
}
Chris Van Cleve wrote:
> I am displaying a 5 day outlook of upcoming events. Each day displays a
> box with the date at the top, and any events for that day below. That's
> all fine and dandy, but I've run into a problem ad for whatever reason I
> can't get my head wrapped around it today.
>
> If the db query returns an empty result set (there are no events over
> the next five days), none of the boxes show. Here is the code I'm using
> (note: the DL is for CSS formatting. Yes it's a cheap trick. No I'm not
> after comments on it.):
>
> $cal_sql = "SELECT * FROM ipm_events WHERE event_date BETWEEN CURDATE()
> AND CURDATE() + 5";
>
> $events = $idb->Execute("$cal_sql");
>
> $month = date(F);
>
> $day_events = "<ul id='events'>\n";
>
> while (!$events->EOF)
> {
> for ($i=0; $i < 5; $i++)
> {
> $day = date(d) + $i;
>
> if ($events->fields['event_description'] == "")
> {
> $events = 'No Events';
> } else {
> $events = $events->fields['event_description'];
> }
>
> $day_events .= "<dl class='events'>
> <dt><img src='/images/calendar/events/month_" . $month .
> ".png' title='" . $month . "'>
> <img src='/images/calendar/events/day_" . $day . ".png'
> title='" . $day . "'></dt>
> <dd>" . $events . "</dd>
> </dl>";
> $events->MoveNext();
> }
> }
>
> $day_events .= "</ul>\n";
>
> The catch is obviously the use of:
>
> while (!$events->EOF)
>
> With an empty result set, it is EOF immediately, so no event boxes
> display on the page. What should I be using to iterate that will allow
> all 5 days to display even if there are absolutely no events over those
> days?
>
> Chris VC
>
> _______________________________________________
> ciapug mailing list
> ciapug at cialug.org
> http://cialug.org/mailman/listinfo/ciapug
More information about the ciapug
mailing list