public static function QueriedSiteListInAreasInIdList($areas, $ids, $iteratorCallback) { $from = "FROM " . GeoliveHelper::AttributeTable() . " a inner join " . GeoliveHelper::MapitemTable() . " m on a.mapitem = m.id WHERE m.lid IN (" . implode(', ', array_map(function ($layer) { return $layer->getId(); }, self::VisibleLayers())) . ") AND m.id IN(" . implode(', ', array_map(function ($id) { return (int) $id; }, $ids)) . ")"; $paWhere = 'AND (' . implode(' OR ', array_map(function ($pa) { return 'lower(trim(a.paddlingArea)) = lower(trim(\'' . GeoliveHelper::Database()->escape($pa) . '\'))'; }, $areas)) . ')'; $query = "SELECT * {$from} {$paWhere} order by m.name"; self::Database()->iterate($query, $iteratorCallback); }