Meetup-API-client-for-PHP icon indicating copy to clipboard operation
Meetup-API-client-for-PHP copied to clipboard

Iterating by page through all Meetup events

Open jagman653 opened this issue 12 years ago • 0 comments

The Meetup API limits page size to 200 so I need step page by page to get all events. Here's a snipit of my code: $page_size = 20; $page_offset = 0; $events = $m->getEvents( array( 'group_urlname' => 'OC-HIKING-com', 'time' => $timerange, 'status' => 'past,upcoming', 'fields' => 'event_hosts', 'omit' => 'description', 'page' => $page_size, 'offset' => $page_offset)); $eventsCount = count($events); $n = 0; // testing $nMax = 100; // avoid runaway processing! while($eventsCount > 0 && $n < $nMax){ echo "n = " . $n . " Page offset= " . $page_offset. " Events count = " . $eventsCount . "

"; foreach( $events AS $event ) { ... } .... $page_offset = $page_offset + $eventsCount; $events = $m->getEvents( array( 'group_urlname' => 'OC-HIKING-com', 'time' => $timerange, 'status' => 'past,upcoming', 'fields' => 'event_hosts', 'omit' => 'description', 'page' => $page_size, 'offset' => $page_offset)); $eventsCount = count($events); $n = $n + 1; echo "Again... n = " . $n . " Page offset= " . $page_offset. " Events count = " . $eventsCount . "

"; } // end of outer While loop

The problem is when the number of events is not a multiple of $page_size the last group of events isn't returned by getEvents(). IOW, if there are 10 events and the $page_size = 8, the first 8 are processed but when $events is updated $eventsCount =0.

Is this a know issue?

TIA

Ed S

jagman653 avatar Feb 04 '14 00:02 jagman653