0
Good morning guys to need to do an update in the database but I’m not getting below the codes:
I am using the codeigniter so this the following way:
Controler:
function editar($ocod) {
/* Aqui vamos definir o título da página de edição */
$this->template->set('title', 'Editar Orçamentos');
/* Busca os dados da pessoa que será editada */
$data['dados_orcamentos'] = $this->model->editar($ocod);
/* Carrega a página de edição com os dados da pessoa */
$this->template->load('layout', 'orcamentos_edit.phtml', $data);
}
function atualizar() {
/* Carrega a biblioteca do CodeIgniter responsável pela validação dos formulários */
$this->load->library('form_validation');
/* Define as tags onde a mensagem de erro será exibida na página */
$this->form_validation->set_error_delimiters('<span>', '</span>');
/* Aqui estou definindo as regras de validação do formulário, assim como
na função inserir do controlador, porém estou mudando a forma de escrita */
$this->form_validation->set_rules('cliente', 'Cliente', 'required');
$this->form_validation->set_rules('produto', 'Produto', 'required');
$this->form_validation->set_rules('orcdat', 'Data', 'required');
$this->form_validation->set_rules('situacao', 'Situação', 'required');
$this->form_validation->set_rules('valor', 'Valor', 'required');
/* Executa a validação e caso houver erro chama a função editar do controlador novamente */
if ($this->form_validation->run() === FALSE) {
$this->editar($this->input->post('ocod'));
} else
/* Senão obtém os dados do formulário */
$data['ocod'] = $this->input->post('ocod');
$data['cliente'] = $this->input->post('cliente');
$data['produto'] = $this->input->post('produto');
$data['orcdat'] = $this->input->post('orcdat');
$data['situacao'] = $this->input->post('situacao');
$data['valor'] = $this->input->post('valor');
/* Executa a função atualizar do modelo passando como parâmetro os dados obtidos do formulário */
if ($this->model->atualizar($data)) {
$this->session->set_flashdata('mensagem', "<div class='alert alert-success'> Orçamento editado com sucesso</div>");
redirect('orcamentos');
} else {
$this->session->set_flashdata('mensagem', "<div class='alert alert-danger'> Erro ao editar Orçamento</div>");
}
}
Model:
function editar($ocod) {
$this->db->select('ocod, cnome, pnome, orcdat, situacao, valor');
$this->db->where('ocod', $ocod);
$this->db->join('clientes', 'clientes.ccod = orcamentos.cliente');
$this->db->join('produtos', 'produtos.pcod = orcamentos.produto');
$query = $this->db->get('orcamentos');
return $query->result();
}
function atualizar($data) {
$this->db->where('ocod', $data['ocod']);
$this->db->set($data);
return $this->db->update('orcamentos');
}
View:
<input type="hidden" name="ocod" value="<?php echo $dados_orcamentos[0]->ocod; ?>"/>
<div class="row">
<div class="form-group col-md-5">
<label for="cliente">Cliente:</label><br/>
<input type="text" class="form-control" name="nome" value="<?php echo $dados_orcamentos[0]->cnome; ?>"/>
<div class="error"><?php echo form_error('cliente'); ?></div>
</div>
<div class="form-group col-md-5">
<label for="produto">Produto:</label><br/>
<input type="text" class="form-control" name="produto" value="<?php echo $dados_orcamentos[0]->pnome; ?>"/>
<div class="error"><?php echo form_error('produto'); ?></div>
</div>
</div>
<div class="row">
<div class="form-group col-md-5">
<label for="orcdat">data:</label><br/>
<input type="text" class="form-control" name="orcdat" value="<?php echo $dados_orcamentos[0]->orcdat; ?>"/>
<div class="error"><?php echo form_error('orcdat'); ?></div>
</div>
<div class="form-group col-md-5">
<label for="situacao">Situação:</label><br/>
<input type="text" class="form-control" name="situacao" value="<?php echo $dados_orcamentos[0]->situacao; ?>"/>
<div class="error"><?php echo form_error('situacao'); ?></div>
</div>
</div>
<div class="row">
<div class="form-group col-md-5">
<label for="valor">Valor:</label><br/>
<input type="text" class="form-control" name="valor" value="<?php echo $dados_orcamentos[0]->valor; ?>"/>
<div class="error"><?php echo form_error('orcdat'); ?></div>
</div>
</div>
<div class="row">
<div class="col-md-12">
<input type="submit" class="btn btn-primary" name="btsalvar" value="Salvar" />
<a onClick="history.go(-1)" class="btn btn-default">Cancelar</a>
</div>
</div>
<?php echo form_close(); ?>
In case I have a budget related to a client, then each budget has as a foreign key the client code, I am using joins to display the name of the client to which the budget belongs, so far so good. But at the time of editing I believe that this missing some detail for the function to work could help me?
Gives error or just doesn’t update?
– lcssanches