Skip to content

Instantly share code, notes, and snippets.

@marcellobenigno
Created January 25, 2013 21:53
Show Gist options
  • Save marcellobenigno/4638234 to your computer and use it in GitHub Desktop.
Save marcellobenigno/4638234 to your computer and use it in GitHub Desktop.
<?php
class Posto_plu extends CI_Controller {
function __construct() {
parent::__construct();
}
function index() {
$data['titulo'] = "Cadastro de Postos Pluviométricos";
$sql = "SELECT gid, valor_precipitado, ST_x(the_geom) AS x, ST_y(the_geom) AS y, nome_posto, bacia
FROM posto_pluviometrico";
$query = $this->db->query($sql);
$data['postos'] = $query->result();
$this->load->view('posto_new', $data);
}
function insere() {
$x = $this->input->post('x');
$y = $this->input->post('y');
$nome_posto = $this->input->post('nome_posto');
$valor_precipitado = $this->input->post('valor_precipitado');
$sql_1 = "INSERT INTO posto_pluviometrico (the_geom, bacia, nome_posto, valor_precipitado)
SELECT ST_GeomFromText('POINT($x $y)',29185),
bacia.nome_bacia,
'$nome_posto',
'$valor_precipitado'
FROM bacia
WHERE
ST_CONTAINS(bacia.geom,
ST_GeomFromText('POINT($x $y)',29185))";
$query_1 = $this->db->query($sql_1);
//pego o último id inserido
$id = $this->db->insert_id();
$sql_2 = "SELECT gid, valor_precipitado, ST_x(the_geom) AS x, ST_y(the_geom) AS y, nome_posto, bacia
FROM posto_pluviometrico WHERE gid = $id";
$data['posto_plu'] = $this->db->query($sql_2)->row();
$data['msg'] = "Registro Cadastrado com sucesso!";
$this->load->view('sucesso', $data);
}
function editar($id) {
$sql = "SELECT gid, valor_precipitado, ST_x(the_geom) AS x, ST_y(the_geom) AS y, nome_posto, bacia
FROM posto_pluviometrico WHERE gid = $id";
$data['posto_plu'] = $this->db->query($sql)->row();
$this->load->view('posto_edit', $data);
}
function atualizar() {
$gid = $this->input->post('gid');
$x = $this->input->post('x');
$y = $this->input->post('y');
$nome_posto = $this->input->post('nome_posto');
$valor_precipitado = $this->input->post('valor_precipitado');
$sql_1 = "UPDATE posto_pluviometrico SET
the_geom = ST_GeomFromText('POINT($x $y)',29185),
nome_posto = '$nome_posto',
valor_precipitado = $valor_precipitado,
bacia = (SELECT bacia.nome_bacia FROM bacia
WHERE
ST_CONTAINS(bacia.geom,
ST_GeomFromText('POINT($x $y)',29185))
)
WHERE gid = $gid";
$query = $this->db->query($sql_1);
$sql_2 = "SELECT gid, valor_precipitado, ST_x(the_geom) AS x, ST_y(the_geom) AS y, nome_posto, bacia
FROM posto_pluviometrico WHERE gid = $gid";
$data['posto_plu'] = $this->db->query($sql_2)->row();
$data['msg'] = "Registro Alterado com sucesso!";
$this->load->view('sucesso', $data);
}
function deletar($id)
{
$this->db->where('gid', $id);
$this->db->delete('posto_pluviometrico');
redirect('posto_plu');
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment