public static function getCityID($cities_names, $con) { //abre a conexão $link = $con->open(); $cities = array(); $result = array(); //acaba a função if ($cities_names == null) { return; } // cria a string com os nomes for ($i = 0; $i < sizeof($cities_names); $i++) { $nome_cidade = $cities_names[$i]; if (PublicMethods::hasState($nome_cidade)) { if ($nome_cidade != null) { $cities_with_state = $cities_with_state . "replace(lower(sem_acento('{$nome_cidade}')),' ','_'),"; } } else { if ($nome_cidade != null) { $cities_without_state = $cities_without_state . "replace(lower(sem_acento('{$nome_cidade}')),' ','_'),"; } } } //monta a sql de busca com estados if ($cities_with_state != "") { //remove a última vírgula $cities_with_state = substr($cities_with_state, 0, -1); $query_with_state = "SELECT m.id, replace(lower(sem_acento( (m.nome || '-' || e.uf) )),' ','_') as full_name FROM municipio m INNER JOIN estado e ON m.fk_estado = e.id WHERE replace(lower(sem_acento( (m.nome || '-' || e.uf) )),' ','_') in ({$cities_with_state});"; //monta o array de id de cidades $res = pg_query($link, $query_with_state) or die("Nao foi possivel executar a consulta!"); while ($row = pg_fetch_row($res, null, PGSQL_ASSOC)) { $cities[$row['full_name']] = $row['id']; } } //monta a sql de busca sem estados if ($cities_without_state != "") { //remove a última vírgula $cities_without_state = substr($cities_without_state, 0, -1); $query_without_state = "SELECT DISTINCT ON (m.nome) m.id, replace(lower(sem_acento( m.nome )),' ','_') as full_name FROM municipio m INNER JOIN estado e ON m.fk_estado = e.id WHERE replace(lower(sem_acento( (m.nome) )),' ','_') in ({$cities_without_state});"; //monta o array de id de cidades $res = pg_query($link, $query_without_state) or die("Nao foi possivel executar a consulta!"); while ($row = pg_fetch_row($res, null, PGSQL_ASSOC)) { $cities[$row['full_name']] = $row['id']; } } foreach ($cities_names as $value) { if ($cities[$value] != NULL) { array_push($result, $cities[$value]); } } return $result; }