Hello, I'm developing a data search field. And this one, is working very well until then; but I would like to add some query parameters to this field.
How are you today (search possibilities):
Data inicial
Data final
Nome.
How do I want to:
Data inicial
Data final
Opção que filtra todos os estoque (abaixo e acima do minimo), outra opção que filtra somente abaixo do estoque minimo e uma ultima opção que filtra somente acima do estoque minimo.
Pesquisar pelo id, nome ou descricao (três colunas diferentes) em um só campo.
Note: There are two fields for the inventory-related products table, these being inventory and inventory_min. I want to make a query, using a select, which, depending on the option selected, bring the queries if the inventory is larger, smaller than stock_min or all.
I'm using the GET method to perform this query:
Here is the code for the view:
<form method="get" action="<?= base_url()?>admin/produtos">
<div class="modal-body">
<div class="row">
<div class="form-group col-sm-6">
<label for="dt_inicio">Cadastro inicial</label>
<div class="input-group">
<div class="input-group-addon">
<i class="fa fa-calendar"></i>
</div>
<input type="text" name="de" class="form-control pull-right" id="datepicker" autocomplete="off" value="<?php echo $this->input->get('de'); ?>">
</div>
</div>
<div class="form-group col-sm-6">
<label for="dt_fim">Cadastro final</label>
<div class="input-group">
<div class="input-group-addon">
<i class="fa fa-calendar"></i>
</div>
<input type="text" name="ate" class="form-control pull-right" id="datepicker2" autocomplete="off" value="<?php echo $this->input->get('ate'); ?>">
</div>
</div>
</div>
<div class="form-group">
<label for="estoque" class="control-label">Estoque</label>
<select name="estoque" class="form-control">
<option value="" selected="selected">Todos</option>
<option value="1">Acima do estoque mínimo</option>
<option value="2">Abaixo do estoque mínimo</option>
</select>
</div>
<div class="form-group">
<label for="produto">Produto</label>
<input type="text" id="pesquisar_dados" name="pesquisar_dados" class="form-control" autocomplete="off" value="<?php echo $this->input->get('pesquisar_dados'); ?>" placeholder="Pesquise nome do produto" autofocus="autofocus">
</div>
</div>
<div class="modal-footer clearfix">
<button type="button" class="btn btn-default btn-flat" data-dismiss="modal"><i class="fa fa-times"></i> Cancelar</button>
<button type="submit" class="btn btn-primary btn-flat pull-left"><i class="fa fa-search"></i> Pesquisar</button>
</div>
</form>
Follow model code:
public function pesquisar($pesquisar, $de, $ate){
if($pesquisar != null){
//$this->db->or_like('id' ,$pesquisar);
$this->db->or_like('nome' ,$pesquisar);
}
if($de != null){
$this->db->where('dt_cadastro >=' ,$de);
$this->db->where('dt_cadastro <=', $ate);
}
$this->db->limit(10);
return $this->db->get('produtos')->result();
}
Follow Controller:
$de = $this->input->get('de');
$ate = $this->input->get('ate');
$estoque = $this->input->get('estoque');
$pesquisar = $this->input->get('pesquisar_dados');
if($pesquisar == null && $estoque == null && $de == null && $ate == null)
{ "exibe todos os resultados"}
else
[![inserir a descrição da imagem aqui][1]][1]{
if($de != null){
$de = explode('/', $de);
$de = $de[2].'-'.$de[1].'-'.$de[0];
if($ate != null){
$ate = explode('/', $ate);
$ate = $ate[2].'-'.$ate[1].'-'.$ate[0];
}
else{
$ate = $de;
}
}
$this->data['pagination'] = $this->pagination->create_links();
$this->data['produtos'] = $this->Produtos_model->pesquisar($pesquisar, $de, $ate);
}
Table:
id' INT(11) NOT NULL AUTO_INCREMENT,
'nome' VARCHAR(40) NOT NULL,
'descricao' VARCHAR(80) NOT NULL,
'preco_compra' DECIMAL(10,2) NULL DEFAULT NULL,
'preco_venda' DECIMAL(10,2) NOT NULL,
'estoque' INT(11) NOT NULL,
'estoque_min' INT(11) NULL DEFAULT NULL,
'usuario_cadastro' VARCHAR(40) NOT NULL,
'usuario_alteracao' VARCHAR(40) NOT NULL,
'dt_cadastro' DATETIME NOT NULL,
'dt_alteracao' DATETIME NULL DEFAULT NULL,