Ir para conteúdo
Fórum Script Brasil
  • 0

Filtro em 2 tabelas


sacjamm

Pergunta

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 para o comentário
Compartilhar em outros sites

4 respostass a esta questão

Posts Recomendados

  • 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 para o comentário
Compartilhar em outros 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?

Editado por wash
Link para o comentário
Compartilhar em outros 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 para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152k
    • Posts
      651,7k
×
×
  • Criar Novo...