getSet('format', array('json'), 'json'); set_exception_handler_by_format($sOutputFormat); $iDays = $oParams->getInt('days', false); $bReduced = $oParams->getBool('reduced', false); $sClass = $oParams->getString('class', false); $oDB = new Nominatim\DB(CONST_Database_DSN); $oDB->connect(); $iTotalBroken = (int) $oDB->getOne('SELECT count(*) FROM import_polygon_error'); $aPolygons = array(); while ($iTotalBroken && empty($aPolygons)) { $sSQL = 'SELECT osm_type, osm_id, class, type, name->\'name\' as "name",'; $sSQL .= 'country_code, errormessage, updated'; $sSQL .= ' FROM import_polygon_error'; $aWhere = array(); if ($iDays) { $aWhere[] = "updated > 'now'::timestamp - '".$iDays." day'::interval"; $iDays++; } if ($bReduced) { $aWhere[] = "errormessage like 'Area reduced%'"; } if ($sClass) { $sWhere[] = "class = '".pg_escape_string($sClass)."'"; } if (!empty($aWhere)) { $sSQL .= ' WHERE '.join(' and ', $aWhere); } $sSQL .= ' ORDER BY updated desc LIMIT 1000'; $aPolygons = $oDB->getAll($sSQL); } if (CONST_Debug) { var_dump($aPolygons); exit; } if ($sOutputFormat == 'json') { javascript_renderData($aPolygons); }