Ir para conteúdo
Fórum Script Brasil

playnet

Membros
  • Total de itens

    4
  • Registro em

  • Última visita

Sobre playnet

playnet's Achievements

0

Reputação

  1. Bom pessoal. Utilizei $_SESSION para solucionar essa questão. Status: Resolvido.
  2. Boa noite! Gostaria de uma ajuda para ajustar o funcionamento de paginação com os dados enviados através de um form, vou utilizar um exemplo fictício para descrever o que preciso. Form para obter duas informações (loja e produto) através de uma lista de opções extraídas do BD: <?php //Conectar ao BD include_once("connection.php"); ?> <html> <head> <title>Test</title> </head> <body bgcolor="DAEBE1"> <div id="report"> <form action="view_produtos.php" method="POST" enctype="multipart/form-data"> Loja: <select name="loja"> <option value="">Selecione a Loja</option> <?php $query = "SELECT nome FROM lojas WHERE ativo='S' order by nome asc"; $result = mysqli_query($conn, $query) or die ("Error ao selecionar loja"); foreach ($result as $loja) { ?> <option value="<?php echo $loja["nome"]; ?>"><?php echo $loja["nome"];?></option> <?php } ?> </select>&emsp; Produto: <select name="produto"> <option value="">Selecione o produto</option> <?php $query = "SELECT nome FROM produtos order by nome asc"; $result = mysqli_query($conn, $query) or die ("Error ao selecionar produtos"); foreach ($result as $produto) { ?> <option value="<?php echo $produto["nome"]; ?>"><?php echo $produto["nome"];?></option> <?php } ?> </select> <p><input type="submit" value="Enviar" style="width: 120px; height: 30px"></p> <p><input type="hidden" name="test" value="ok"></p> </form> </div> </body> </html> PHP - view_produtos.php Pego as informações enviadas pelo submit e uso suas respectivas variáveis na consulta sql. Mostro o resultado da consulta com o código de paginação ativada. <?php //Conectar ao BD include_once("connection.php"); @session_start(); ?> <html> <head> <title>Test</title> </head> <body bgcolor="DAEBE1"> <?php if(isset($_POST['test']) && $_POST['test'] == "ok"){ $loja = $_POST['loja']; $produto = $_POST['produto']; ?> <p> <table border='2'> <tr bgcolor='#A9A9A9' align='center'> <td>Loja</td> <td>Produto</td> </tr> <?php //Paginação $page = (isset($_GET['page']))? $_GET['page'] : 1; $query = "SELECT loja, produto FROM ... WHERE $loja ... AND $produto ..."; $result = mysqli_query($conn, $query) or die ("Erro na consulta"); $rows = mysqli_num_rows($result); $total_reg = "10"; // Número de registros por página $numpage = ceil($rows/$total_reg); $inicio = ($total_reg*$page)-$total_reg; $limit_result = mysqli_query($conn, "$query LIMIT $inicio, $total_reg") or die ("Erro na consulta"); while ($row = mysqli_fetch_object($limit_result)) { echo "<tr align='center'>"; echo "<td>".$row->loja."</td>"; echo "<td>".$row->produto."</td>"; echo"</tr>"; } //Exibe a Paginação for($i = 1; $i < $numpage + 1; $i++) { echo "<a href='?page=$i'>Page".$i."</a>&emsp;"; } } ?> </table> </body> </html> Tanto a consulta como o código de paginação estão funcionando... o problema é: Se eu executo o view_produtos.php individualmente tudo funciona, a quebra de página fica certinha mostrando o resultado exato em cada page. Agora se pego os dados a partir do form que eu descrevi acima, ao clicar no link da page 2 por exemplo, ele mostra o resultado em branco, sendo necessário dar submit novamente pra exibir a page 2. Como eu faria para mostrar os resultados da page 2, page 3, etc.. sem precisar enviar os dados de form novamente? Acredito também que eu precisaria manter os dados no form após o submit. Alguma sugestão? Obrigado, Alex
  3. Perfeito Mestre Denis! Funcionou exatamente como eu queria. Eu estava tentando algo parecido, mas através do count, sei lá porque haha. Muito Obrigado pela ajuda super rápida!
  4. Boa tarde! Gostaria de uma ajuda para finalizar uma consulta SQL, vou utilizar um exemplo fictício para descrever o que preciso. SELECT tbCidades.nome as Cidade, tbFiliais.nome as Filial, tbProdutos.nome as NomeProduto FROM cidades tbCidades, filiais tbFiliais, produtos tbProdutos, vendas tbVendas WHERE tbFiliais.idCidade=tbCidades.idCidade and tbProdutos.idFilial=tbFilial.idFilial and tbProdutos.idProduto=tbVendas.idProduto and tbCidades.nome='Rio de Janeiro' and tbFiliais.nome='Copacabana' and tbVendas.data='15/11/2017' GROUP BY Cidade, Filial, NomeProduto O que preciso: 4ª coluna: Contar qtas vendas efetuadas da respectiva Cidade-Filial-Produto que tenham tbVendas.formapgto 'C' (cartão de crédito) Nome da Coluna seria: VendasCartao 5ª coluna: Contar qtas vendas efetuadas da respectiva Cidade-Filial-Produto que tenham tb.Vendas.formapgto 'D' (dinheiro) Nome da Coluna seria: VendasDinheiro 6ª coluna: Contar qtas vendas efetuadas da respectiva Cidade-Filial-Produto independente da formapgto ou que tb.Vendas.formapgto in ('C', 'D') Nome da Coluna seria: VendasTotal Resultado Esperado: Cidade Filial NomeProduto VendasCartao VendasDinheiro VendasTotal Rio de Janeiro Copacabana Cadeira de Praia 4 2 6 Rio de Janeiro Copacabana Barraca de Praia 3 0 3 Rio de Janeiro Copacabana Mesa Plastico 8 6 14 Já tentei usar de tudo... subqueries com select+count(tbVendas.idVenda), função, etc... e nada. Sempre pega na questão do group by. Alguma sugestão? Obrigado, Alex
×
×
  • Criar Novo...