RRH Postado Novembro 5, 2010 Denunciar Share Postado Novembro 5, 2010 (editado) Como criar uma página php que imprima os dados de uma tabela mysql separados por tipos?Ex:Loja A tem44 sapatos brancos10 sapatos pretos22 sapatos vermelhosLoja B tem11 sapatos brancos99 sapatos pretos32 sapatos vermelhose assim por diante...Eu cheguei até aqui:<?php require "config.php"; $sql=("SELECT * FROM estoque WHERE sapato = 'vermelho'"); $query=mysql_query($sql); $total=mysql_num_rows($query); echo "Quantidade de registros encontrados: $total"; if ($total == 0){ echo "Nenhum registro encontrado!"; } ?> Editado Novembro 27, 2010 por RRH Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 vini_loock Postado Novembro 5, 2010 Denunciar Share Postado Novembro 5, 2010 (editado) Troque:$sql=("SELECT * FROM estoque WHERE sapato = 'vermelho'"); Por:$sql = "SELECT * FROM estoque WHERE sapato = 'vermelho'"; Dai no echo"" você pode fazer assim:echo $total.'Sapatos Vermelhos<br />'; Editado Novembro 5, 2010 por vini_loock Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 RRH Postado Novembro 5, 2010 Autor Denunciar Share Postado Novembro 5, 2010 Ok amigo, mas preciso que exiba o total de todas as cores separado por loja, entendeu? Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 vini_loock Postado Novembro 5, 2010 Denunciar Share Postado Novembro 5, 2010 (editado) Você pode fazer uma tabela como:id___produto_________loja1__sapato vermelho__lojaA2__sapato azul_______lojaA3__sapato verde_____lojaAe o select:mysql_select("SELECT * FROM estoque WHERE loja = 'lojaA' AND produto = 'sapato azul'") Da para você fazer um laço, ou fazer manualmente, ou então fazer um único select(SELECT * FROM estoque) e verificar na hora de exibir. Este é o jeito mais simples de se fazer, mas você tem que saber exatamente tudo que tem no seu bd. edit... fiz este exemplo, funciona quase da mesma forma, você tem que adicionar os tipos de produtos num array e depois verificar manualmente.<?php $query = mysql_query("SELECT * FROM estoque"); while($var = mysql_fetch_array($query)){ $produtos = array( "sapatoVermelho" => "0", "sapatoVerde" => "0" ); if($var['produto'] == 'sapato vermelho'){ $produtos[sapatoVermelho]++; } if($var['produto'] == 'sapato vermelho'){ $produtos[sapatoVerde]++; } } ?>Mas também de o subselect da classe PDO, vou ver se acho alguma coisa referente.Facinho assim, já achei:http://vimeo.com/13975203 Editado Novembro 5, 2010 por vini_loock Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 RRH Postado Novembro 5, 2010 Autor Denunciar Share Postado Novembro 5, 2010 (editado) Ok, mas acho que não estou conseguindo passar a minha idéia! Preciso de um código que faça a leitura de toda a tabela e depois organize os dados assim:Loja A tem44 sapatos brancos10 sapatos pretos22 sapatos vermelhosLoja B tem11 sapatos brancos99 sapatos pretos32 sapatos vermelhosLoja C tem30 sapatos brancos55 sapatos pretos20 sapatos vermelhosDe forma que eu tenha como ver em uma só tela o estoque de uma rede de lojas, entendeu? Editado Novembro 5, 2010 por RRH Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 JCMPJ Postado Novembro 7, 2010 Denunciar Share Postado Novembro 7, 2010 Será que funciona?SELECT COUNT(*) AS tot,Loja,sapato FROM estoque GROUP BY Loja,sapato Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 RRH Postado Novembro 22, 2010 Autor Denunciar Share Postado Novembro 22, 2010 Parece que relatório não é o forte do php né!? Se alguém tiver alguma idéia fico grato. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Stoma Postado Novembro 23, 2010 Denunciar Share Postado Novembro 23, 2010 Muito pelo contrário... o problema que você está tendo não é do PHP e sim do comando SQL.Como está o seu banco? Poste a estrutura da tabela aqui, fica mais fácil ajuda.. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 RRH Postado Novembro 23, 2010 Autor Denunciar Share Postado Novembro 23, 2010 (editado) Caro Stoma, estou iniciando em php. Quais dados você precisa? A estrutura da tabela eu pego pelo phpmyadmin? Editado Novembro 23, 2010 por RRH Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 svjets Postado Novembro 24, 2010 Denunciar Share Postado Novembro 24, 2010 A estrutura da tabela pega no phpmyadmin caso você já tenha criado a tabela no mysql. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 RRH Postado Novembro 24, 2010 Autor Denunciar Share Postado Novembro 24, 2010 (editado) Fineza verificarem se os dados abaixo atendem:-- phpMyAdmin SQL Dump -- version 3.3.2deb1 -- http://www.phpmyadmin.net -- -- Servidor: localhost -- Tempo de Geração: Nov 24, 2010 as 06:18 PM -- Versão do Servidor: 5.1.41 -- Versão do PHP: 5.3.2-1ubuntu4.5 SET SQL_MODE="NO_AUTO_VALUE_ON_ZERO"; -- -- Banco de Dados: `base` -- -- -------------------------------------------------------- -- -- Estrutura da tabela `estoque` -- CREATE TABLE IF NOT EXISTS `estoque` ( `id` int(10) NOT NULL AUTO_INCREMENT, `loja` varchar(50) NOT NULL, `tipo` varchar(50) NOT NULL, `qtde` int(5) NOT NULL, `cor` varchar(50) NOT NULL, PRIMARY KEY (`id`) ) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=9; -- -- Extraindo dados da tabela `estoque` -- INSERT INTO `estoque` (`id`, `loja`, `tipo`, `qtde`, `cor`) VALUES (1, 'A', 'SAPATO', 10, 'VERDE'), (2, 'A', 'SAPATO', 35, 'PRETO'), (3, 'A', 'SAPATO', 40, 'BRANCO'), (4, 'B', 'SAPATO', 90, 'BRANCO'), (5, 'B', 'SAPATO', 150, 'VERDE'), (6, 'C', 'SAPATO', 25, 'ROSA'), (7, 'D', 'SAPATO', 10, 'MARROM'), (8, 'D', 'SAPATO', 15, 'PRETO'); Editado Novembro 24, 2010 por RRH Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 svjets Postado Novembro 24, 2010 Denunciar Share Postado Novembro 24, 2010 (editado) Cara, pensei no seguinte, tem que testar:<?php require "config.php"; $ctrl_loja=""; $ctrl_tipo=""; $ctrl_cor=""; $soma=0; $sql=("SELECT * FROM estoque order by loja asc,tipo asc,cor asc); $query=mysql_query($sql); $total=mysql_num_rows($query); if($total) { echo "Quantidade de registros encontrados: $total"; } else { echo "Nenhum registro encontrado!"; exit; } while($res=mysql_fetch_array($query) { $loja=$res['loja']; $tipo=$res['tipo']; $cor=$res['cor']; if($ctrl_loja != $loja) { if($ctrl_loja) { echo $soma."\n"; } echo "Loja".$loja."\n"; $ctrl_loja=$loja; $tipo=""; $cor=""; } if($ctrl_tipo != $tipo) { echo "Tipo ".$tipo."\n"; $ctrl_tipo=$tipo; } if($ctrl_cor != $cor) { echo "Quantidade da cor ".$cor.":"; $ctrl_cor=$cor; $soma=1; } if($ctrl_loja == $loja AND $ctrl_tipo == $tipo AND $ctrl_cor == $cor) { $soma++; } } ?>Não testei, mas deve dar certo. Editado Novembro 24, 2010 por svjets Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 RRH Postado Novembro 24, 2010 Autor Denunciar Share Postado Novembro 24, 2010 (editado) Infelizmente o que você fez é muito avançado pra mim e eu não consegui encontrar solução para o que está faltando para o seu código funcionar. Depois de inserir algumas aspas e parenteses que estavam faltando eu visualizei exatamente o texto abaixo como resposta:Quantidade de registros encontrados: 5LojaA Tipo SAPATO Quantidade da cor PRETO:Quantidade da cor VERDE:2 LojaB Tipo Quantidade da cor :Tipo SAPATO Quantidade da cor VERDE:Outra coisa que percebi foi que faltava a coluna de quantidade (qtde) que já alterei no ultimo post na estrutura da tabela. Editado Novembro 24, 2010 por RRH Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 svjets Postado Novembro 24, 2010 Denunciar Share Postado Novembro 24, 2010 (editado) Tendo já as quantidades definidas fica mais simples:<?php require "config.php"; $ctrl_loja=""; $ctrl_tipo=""; $ctrl_cor=""; $sql="SELECT * FROM estoque order by loja asc,tipo asc,cor asc"; $query=mysql_query($sql); $total=mysql_num_rows($query); if($total) { echo "Quantidade de registros encontrados: $total"; } else { echo "Nenhum registro encontrado!"; exit; } while($res=mysql_fetch_array($query)) { $loja=$res['loja']; $tipo=$res['tipo']; $cor=$res['cor']; $qtde=$res['qtde']; if($ctrl_loja != $loja) { echo "Loja".$loja."<br />\n"; $ctrl_loja=$loja; $tipo=""; $cor=""; } if($ctrl_tipo != $tipo) { echo "Tipo ".$tipo."<br />\n"; $ctrl_tipo=$tipo; } if($ctrl_cor != $cor) { echo "Quantidade da cor ".$cor.": ".$qtde."<br /><br />"; $ctrl_cor=$cor; } } ?> Editado Novembro 24, 2010 por svjets Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 RRH Postado Novembro 24, 2010 Autor Denunciar Share Postado Novembro 24, 2010 Ainda está faltando alguns ajustes:Quantidade de registros encontrados: 8LojaATipo SAPATOQuantidade da cor VERDE: 35LojaBTipoQuantidade da cor : 90Tipo SAPATOQuantidade da cor VERDE: 150LojaCTipoQuantidade da cor : 25LojaDTipo SAPATOQuantidade da cor VERDE: 15 Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 svjets Postado Novembro 25, 2010 Denunciar Share Postado Novembro 25, 2010 Refazendo o código já que só há um tipo de uma única cor para cada loja.<?php require "config.php"; $ctrl_loja=""; $sql="SELECT * FROM estoque ORDER BY loja,tipo,cor"; $query=mysql_query($sql); $total=mysql_num_rows($query); if($total) { echo "Quantidade de registros encontrados: ".$total."<br /><br />"; } else { echo "Nenhum registro encontrado!"; exit; } while($res=mysql_fetch_array($query)) { $loja=$res['loja']; $tipo=$res['tipo']; $cor=$res['cor']; $qtde=$res['qtde']; if($ctrl_loja != $loja) { echo "<br />Loja ".$loja." tem<br />\n"; $ctrl_loja=$loja; $cor=""; } echo $qtde." ".$tipo." da cor ".$cor."<br />; } ?> Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 RRH Postado Novembro 25, 2010 Autor Denunciar Share Postado Novembro 25, 2010 Agora não acontece nada! Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 svjets Postado Novembro 25, 2010 Denunciar Share Postado Novembro 25, 2010 (editado) Troca isso:echo $qtde." ".$tipo." da cor ".$cor."<br />; Por isso: echo $qtde." sapatos da cor ".$cor."<br />"; Editado Novembro 25, 2010 por svjets Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 RRH Postado Novembro 27, 2010 Autor Denunciar Share Postado Novembro 27, 2010 (editado) Obrigado a todos pela ajuda. Consegui o resultado que precisava com o código abaixo:<? include "config.php"; ?> <table border="1"><tr> <td><b>Loja</b></td> <td><b>Funcao</b></td> <td><b>Total</b></td> </tr> <? $query="select loja, funcao, count(*) as total from rede group by loja, funcao order by loja, funcao"; $resultado = mysql_query($query, $conexao); while ($linha = mysql_fetch_array($resultado)) { ?> <tr> <td><? echo $linha['loja']; ?></td> <td><? echo $linha['funcao']; ?></td> <td><? echo $linha['total']; ?></td> </tr> <? } ?> </table>Resultado:Loja Funcao TotalA GERENTE 2A MOTORISTA 2B GERENTE 1B MOTORISTA 1 Editado Novembro 27, 2010 por RRH Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
RRH
Como criar uma página php que imprima os dados de uma tabela mysql separados por tipos?
Ex:
Loja A tem
44 sapatos brancos
10 sapatos pretos
22 sapatos vermelhos
Loja B tem
11 sapatos brancos
99 sapatos pretos
32 sapatos vermelhos
e assim por diante...
Eu cheguei até aqui:
Editado por RRHLink para o comentário
Compartilhar em outros sites
18 respostass a esta questão
Posts Recomendados
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.