/** * Calcola il comune in cui cade la geometria data * @param integer $id Id della geometria * @return array the result set (each array element represents a row of data). An empty array will be returned if the result contains no row. NULL is returned if ID is null. */ public static function Get_City_State_ByID($id) { $connection = Yii::app()->db; $sql = ' SELECT confini_comunali.gid, confini_comunali.id, confini_comunali.nome, confini_comunali.the_geom FROM confini_comunali WHERE st_intersects( confini_comunali.the_geom, ST_Transform(( SELECT centroids.centroid FROM centroids WHERE centroids.id = ' . $id . '), ' . Yii::app()->params['geoserver']['citystate_layer_srid'] . ') );'; $command = $connection->createCommand($sql); $dataReader = $command->query(); // calling read() repeatedly until it returns false //while(($row=$dataReader->read())!==false) { } // using foreach to traverse through every row of data //foreach($dataReader as $row) { } // retrieving all rows at once in a single array $rows = $dataReader->readAll(); //Yii::log(print_r($rows) , CLogger::LEVEL_INFO, 'Query.DB'); // DEBUG if (count($rows) > 1) { return Geometry::Get_City_State_ByID_all($id); } else { return $rows; } }