Jump to content
Fórum Script Brasil
  • 0

Filtro em 2 tabelas


sacjamm

Question

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);
?>
Link to post
Share on other sites

4 answers to this question

Recommended Posts

  • 0

Olá, acabei de fazer isso aqui, só que agora dá um erro

504 Gateway Time-out

Eu dei um echo apenas na minha sql, e me retorna assim, se eu apenas inserir dados em 1 campo, pra mim está correto, e quando eu lanço no sql do phpmyadmin, retorna o resultado corretamente:

select p.*,u.* FROM ws_pedidos p, uni_usuario u WHERE p.pedido_id != 0   OR p.pedido_pagamento = 'Depósito'
Link to post
Share on other sites
  • 0

Olá!

Abaixo do error_reporting...
teste:
ini_set("memory_limit",-1);
set_time_limit(0);
ini_set('max_execution_time', 300); //300 seconds = 5 minutes

Agora q vi lá em cima:  sys.fit-turbo.com
você está rodando num server, né?

creio q vai ter q editar seu arquivo php.ini
Verificar se há algum limite de uso de memória por parte do servidor.

É apache ou nginx?

Edited by wash
Link to post
Share on other sites
  • 0

Sem sucesso!

Estou tentando aplicar esta sql apenas para e-mail:

$sql = select("select ws_pedidos.*, uni_usuario.* "
                            . "from ws_pedidos inner join uni_usuario "
                            . "on ws_pedidos.cliente_id = uni_usuario.cliente_id where uni_usuario.email = '$email'");

Não obtenho os resultados esperado, alguma ideia?

Meu Engine da tabela mysql está como InnoDB, o formato correto

Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.



  • Forum Statistics

    • Total Topics
      148886
    • Total Posts
      644905
×
×
  • Create New...