0
Hello, I’m developing a field of data research. And this, is working very well so far; but I would like to add some query parameters to this field.
As it is today (search possibilities):
Data inicial
Data final
Nome.
As I wish:
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 products table, related to stock, these being, stock and stocking_min. I want to make a query, using a select, which, depending on the selected option, bring the queries if the stock is larger, smaller than stock_min or all.
I am using the GET method to perform this query:
Follow code from 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>
Follows 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();
}
Segue 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,
estoque
andestoque_min
are tables or fields of the table?– ShutUpMagda
fields of the products table, I will edit the question, I missed...
– Wagner Fillio