Filtro em 2 tabelas
Olá pessoal,
Venho aqui pedi mais uma vez a colaboração de vocês se puderem.
Estou com um filtro semelhante a do opencart da area de pedidos.
Estou tentando fazer a busca e não estou tendo sucesso, segue o HTML e o PHP:
Eu não consigo selecionar os dados com esta instrução SQL, porém se eu colocar na SQL direto do phpmyadmin, ela me retorna todos os resultados corretamente.
Alguma solução?
O erro que me retorna é este:
Fatal error: Allowed memory size of 134217728 bytes exhausted (tried to allocate 1267169544 bytes) in sys.fit-turbo.com/views/pedidos/index.php on line 362
<form class="form-inline" action="" method="post">
<div>
<div class="span4">
<div class="control-group">
<label class="control-label" for="pedido"><b>N° Pedido</b></label>
<div class="controls">
<input type="text" id="pedido" class="span12" name="pedido_id">
</div>
</div>
</div>
<div class="span4">
<div class="control-group">
<label class="control-label" for="selectError3"><b>Situação do pedido</b></label>
<div class="controls">
<select id="selectError3" name="status_pedido" class="span12">
<option value="" disabled="" selected="">Selecione a situação do pedido</option>
<option value="0">Novo</option>
<option value="3">Pago</option>
<option value="1">Aguardando</option>
<option value="2">Em análise</option>
<option value="4">Disponível</option>
<option value="5">Em disputa</option>
<option value="6">Devolvido</option>
<option value="7">Cancelado</option>
</select>
</div>
</div>
</div>
<div class="span4">
<div class="control-group">
<label class="control-label" for="ini"><b>Cadastro</b></label>
<div class="controls">
<input type="date" id="ini" name="data_pedido" class="span12" value="<?= $value ?>">
<?= $text; ?>
</div>
</div>
</div>
</div>
<div>
<div class="span4">
<div class="control-group">
<label class="control-label" for="cliente"><b>Cliente</b></label>
<div class="controls">
<input type="text" id="cliente" name="nome" class="span12">
</div>
</div>
</div>
<div class="span4">
<div class="control-group">
<label class="control-label" for="email"><b>E-mail</b></label>
<div class="controls">
<input type="email" id="email" name="email" class="span12">
</div>
</div>
</div>
<div class="span4">
<div class="control-group">
<label class="control-label" for="mod"><b>Forma de pagamento</b></label>
<div class="controls">
<select id="selectError3" name="pedido_pagamento" class="span12">
<option value="" disabled="" selected="">Selecione a forma de pagamento</option>
<option value="Depósito">Depósito</option>
<option value="PagSeguro">PagSeguro</option>
</select>
</div>
</div>
</div>
</div>
<input type="hidden" name="pesquisar" value="ok"/>
<button type="submit" class="btn btn-primary pull-right"><i class="fa fa-search"></i> Filtrar</button>
</form>
<?php
ini_set("display_errors", true);
error_reporting(E_ALL);
$search = filter_input_array(INPUT_POST, FILTER_DEFAULT);
if (isset($search['pesquisar']) AND $search['pesquisar'] == 'ok'):
unset($search['pesquisar']);
$data_pedido = $search['data_pedido'];
$idpedido = $search['pedido_id'];
$statusPedido = $search['status_pedido'];
$pagamento = $search['pedido_pagamento'];
$nome = $search['nome'];
$email = $search['email'];
$whereIdPedido = "";
$whereData = "";
$wherePagamento = "";
$whereStatus = "";
$whereNome = "";
$whereEmail = "";
if (isset($idpedido)):
$whereIdPedido = "AND p.pedido_id = '$idpedido'";
endif;
if (isset($data_pedido)):
$whereData = "OR p.data_pedido = '$data_pedido'";
endif;
if (isset($pagamento)):
$wherePagamento = "OR p.pedido_pagamento = '$pagamento'";
endif;
if (isset($statusPedido)):
$whereStatus = "OR p.status_pedido = '$statusPedido'";
endif;
if (isset($nome)):
$whereNome = "OR u.nome LIKE '$nome'";
endif;
if (isset($email)):
$whereEmail = "OR u.email LIKE '$email'";
endif;
$sql = mysql_query("select p.*,u.* FROM ws_pedidos p, uni_usuario u WHERE p.pedido_id != 0 $whereIdPedido $whereData $wherePagamento $whereStatus $whereNome $whereEmail") or die(mysql_error());
$conta = @mysql_num_rows($sql);
?>
Venho aqui pedi mais uma vez a colaboração de vocês se puderem.
Estou com um filtro semelhante a do opencart da area de pedidos.
Estou tentando fazer a busca e não estou tendo sucesso, segue o HTML e o PHP:
Eu não consigo selecionar os dados com esta instrução SQL, porém se eu colocar na SQL direto do phpmyadmin, ela me retorna todos os resultados corretamente.
Alguma solução?
O erro que me retorna é este:
Fatal error: Allowed memory size of 134217728 bytes exhausted (tried to allocate 1267169544 bytes) in sys.fit-turbo.com/views/pedidos/index.php on line 362
<form class="form-inline" action="" method="post">
<div>
<div class="span4">
<div class="control-group">
<label class="control-label" for="pedido"><b>N° Pedido</b></label>
<div class="controls">
<input type="text" id="pedido" class="span12" name="pedido_id">
</div>
</div>
</div>
<div class="span4">
<div class="control-group">
<label class="control-label" for="selectError3"><b>Situação do pedido</b></label>
<div class="controls">
<select id="selectError3" name="status_pedido" class="span12">
<option value="" disabled="" selected="">Selecione a situação do pedido</option>
<option value="0">Novo</option>
<option value="3">Pago</option>
<option value="1">Aguardando</option>
<option value="2">Em análise</option>
<option value="4">Disponível</option>
<option value="5">Em disputa</option>
<option value="6">Devolvido</option>
<option value="7">Cancelado</option>
</select>
</div>
</div>
</div>
<div class="span4">
<div class="control-group">
<label class="control-label" for="ini"><b>Cadastro</b></label>
<div class="controls">
<input type="date" id="ini" name="data_pedido" class="span12" value="<?= $value ?>">
<?= $text; ?>
</div>
</div>
</div>
</div>
<div>
<div class="span4">
<div class="control-group">
<label class="control-label" for="cliente"><b>Cliente</b></label>
<div class="controls">
<input type="text" id="cliente" name="nome" class="span12">
</div>
</div>
</div>
<div class="span4">
<div class="control-group">
<label class="control-label" for="email"><b>E-mail</b></label>
<div class="controls">
<input type="email" id="email" name="email" class="span12">
</div>
</div>
</div>
<div class="span4">
<div class="control-group">
<label class="control-label" for="mod"><b>Forma de pagamento</b></label>
<div class="controls">
<select id="selectError3" name="pedido_pagamento" class="span12">
<option value="" disabled="" selected="">Selecione a forma de pagamento</option>
<option value="Depósito">Depósito</option>
<option value="PagSeguro">PagSeguro</option>
</select>
</div>
</div>
</div>
</div>
<input type="hidden" name="pesquisar" value="ok"/>
<button type="submit" class="btn btn-primary pull-right"><i class="fa fa-search"></i> Filtrar</button>
</form>
<?php
ini_set("display_errors", true);
error_reporting(E_ALL);
$search = filter_input_array(INPUT_POST, FILTER_DEFAULT);
if (isset($search['pesquisar']) AND $search['pesquisar'] == 'ok'):
unset($search['pesquisar']);
$data_pedido = $search['data_pedido'];
$idpedido = $search['pedido_id'];
$statusPedido = $search['status_pedido'];
$pagamento = $search['pedido_pagamento'];
$nome = $search['nome'];
$email = $search['email'];
$whereIdPedido = "";
$whereData = "";
$wherePagamento = "";
$whereStatus = "";
$whereNome = "";
$whereEmail = "";
if (isset($idpedido)):
$whereIdPedido = "AND p.pedido_id = '$idpedido'";
endif;
if (isset($data_pedido)):
$whereData = "OR p.data_pedido = '$data_pedido'";
endif;
if (isset($pagamento)):
$wherePagamento = "OR p.pedido_pagamento = '$pagamento'";
endif;
if (isset($statusPedido)):
$whereStatus = "OR p.status_pedido = '$statusPedido'";
endif;
if (isset($nome)):
$whereNome = "OR u.nome LIKE '$nome'";
endif;
if (isset($email)):
$whereEmail = "OR u.email LIKE '$email'";
endif;
$sql = mysql_query("select p.*,u.* FROM ws_pedidos p, uni_usuario u WHERE p.pedido_id != 0 $whereIdPedido $whereData $wherePagamento $whereStatus $whereNome $whereEmail") or die(mysql_error());
$conta = @mysql_num_rows($sql);
?>
José Maciel
Curtidas 0