Gretel 0 Denunciar post Postado Setembro 17, 2016 Estou com um problema, estou fazendo um sistema, e estava tudo bem até que eu não consegui mais progredir. tenho uma pagina com um sistema de pesquisa que faz uma consulta de acordo com o nome do usuario e uma data inicial e final (LIKE +BETWEEN) Ela está funcionando certinho na pesquisa, porém, eu necessito que ela faça um tabelamento diferente. Preciso que os produtos com o mesmo nome sejam exibidos na mesma linha com os campos entrada e saida em suas respectivas colunas e só exista uma linha para cada produto indiferente se é uma entrada ou saida. E que o total de entradas/saidas que existir no sql seja somado se forem do mesmo produto. Olhe na imagem abaixo o que eu preciso: SOCORRO! meu codigo está assim: $conn = @mysql_connect("localhost", "", "") or die("Não foi possível a conexão com o Banco"); // Selecionando banco $db = @mysql_select_db("", $conn) or die("Não foi possível selecionar o Banco"); // Recuperamos a ação enviada pelo formulário $a = isset($_GET['a']) ? $_GET['a'] : ''; // Verificamos se a ação é de busca if ($a == "buscar") { // Pegamos a palavra $palavra = trim($_POST['palavra']); $palavra2 = trim($_POST['palavra2']); $data1 = $_POST['data1']; $data2 = $_POST['data2']; $sql = mysql_query("SELECT * FROM historico WHERE usuario LIKE '%".$palavra."%' AND data BETWEEN '$data1' AND '$data2'"); $numRegistros = mysql_num_rows($sql); // Se houver pelo menos um registro, exibe-o if ($numRegistros != 0) { // Exibe os resultados da pesquisa while ($produto = mysql_fetch_object($sql)) { echo " <tr> <td>".$produto->usuario . " </td> <td>".$produto->produto . " ( ".$produto->tipo . ")</td> <td>".$produto->custo." </td> <td>".$produto->preço." </td> <td>".$produto->quantidade." </td> <td> </td> <td> </td> <td> </td> <td width=\"10px\"><a href=\"editar.php?id=$id\"><div class=\"icon-edit\"><div class=\"tooltiptext\">Editar</div></div></a> <a href=\"excluir.php?id=$id\" onclick=\"return confirm('Confirmar exclusão do registro?');\"></div> <div class=\"icon-trash\"><div class=\"tooltiptext\">Excluir</div></div></a> </td>"; } } else { echo "Nenhum dado encontrado com os critérios ".$palavra.", ".$palavra2.", ".$data1.", ".$data2.""; } } ?> Compartilhar este post Link para o post Compartilhar em outros sites
Motta 645 Denunciar post Postado Setembro 17, 2016 Pesquise por GROUP BY. http://dev.mysql.com/doc/refman/5.7/en/group-by-functions.html https://dev.mysql.com/doc/refman/5.5/en/group-by-handling.html Compartilhar este post Link para o post Compartilhar em outros sites
Gretel 0 Denunciar post Postado Setembro 17, 2016 Oi Motta, antes de postar a minha duvida aqui, eu pesquisei e inseri a função GROUP BY, ela realmente funciona. Não consegui fazer ela capturar a quantidade do primeiro registro somada com a quantidade do segundo registro, para que seja exibido o valor correto na quantidade. exemplo, produto 1 (entrada) 10 unidades produto 1 (entrada) 20 unidades imprimir: produto 1 (entrada) 30 unidades Com o GROUP BY ele retorna os valores apenas do primeiro registro. Compartilhar este post Link para o post Compartilhar em outros sites
Motta 645 Denunciar post Postado Setembro 17, 2016 O que de errado ? Poste o sql Compartilhar este post Link para o post Compartilhar em outros sites
Gretel 0 Denunciar post Postado Setembro 17, 2016 erro em si não dá nenhum, mais não resolve o problema. SEM O GROUP BY COM O GROUP BY não sei se é possivel recuperar os dados que foram ocultados pelo group by, se existir, não sei o nome dessa função, nem como implementar. Obrigada Compartilhar este post Link para o post Compartilhar em outros sites
Motta 645 Denunciar post Postado Setembro 17, 2016 Poste o sql. Compartilhar este post Link para o post Compartilhar em outros sites
Gretel 0 Denunciar post Postado Setembro 18, 2016 $conn = @mysql_connect("localhost", "", "") or die("Não foi possível a conexão com o Banco"); // Selecionando banco $db = @mysql_select_db("", $conn) or die("Não foi possível selecionar o Banco"); // Recuperamos a ação enviada pelo formulário $a = isset($_GET['a']) ? $_GET['a'] : ''; // Verificamos se a ação é de busca if ($a == "buscar") { // Pegamos a palavra $palavra = trim($_POST['palavra']); $palavra2 = trim($_POST['palavra2']); $data1 = $_POST['data1']; $data2 = $_POST['data2']; $sql = mysql_query("SELECT * FROM historico WHERE usuario LIKE '%".$palavra."%' AND data BETWEEN '$data1' AND '$data2'"); $numRegistros = mysql_num_rows($sql); // Se houver pelo menos um registro, exibe-o if ($numRegistros != 0) { // Exibe os resultados da pesquisa while ($produto = mysql_fetch_object($sql)) { echo " <tr> <td>".$produto->usuario . " </td> <td>".$produto->produto . " ( ".$produto->tipo . ")</td> <td>".$produto->custo." </td> <td>".$produto->preço." </td> <td>".$produto->quantidade." </td> <td> </td> <td> </td> <td> </td> <td width=\"10px\"><a href=\"editar.php?id=$id\"><div class=\"icon-edit\"><div class=\"tooltiptext\">Editar</div></div></a> <a href=\"excluir.php?id=$id\" onclick=\"return confirm('Confirmar exclusão do registro?');\"></div> <div class=\"icon-trash\"><div class=\"tooltiptext\">Excluir</div></div></a> </td>"; } } else { echo "Nenhum dado encontrado com os critérios ".$palavra.", ".$palavra2.", ".$data1.", ".$data2.""; } } ?> Compartilhar este post Link para o post Compartilhar em outros sites
Motta 645 Denunciar post Postado Setembro 18, 2016 Seu SELECT não tem GROUP BY... Compartilhar este post Link para o post Compartilhar em outros sites