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

Ajuda com consulta


RRH

Pergunta

Estou querendo mudar a disposição em que as informações são exibidas em uma tabela html gerada por uma consulta ao banco de dados mysql, então criei o seguinte banco de dados para teste:

-- phpMyAdmin SQL Dump
 -- version 3.3.2deb1
 -- http://www.phpmyadmin.net
 --
 -- Servidor: localhost
 -- Tempo de Geração: Nov 22, 2012 as 09:28 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: `estoque`
 --

 -- --------------------------------------------------------

 --
 -- Estrutura da tabela `produtos`
 --

 CREATE TABLE IF NOT EXISTS `produtos` (
   `id` smallint(6) NOT NULL AUTO_INCREMENT,
   `produto` varchar(255) NOT NULL,
   `loja` varchar(30) NOT NULL,
   `codigo` char(5) NOT NULL,
   `quantidade` smallint(6) DEFAULT NULL,
   PRIMARY KEY (`id`)
 ) ENGINE=MyISAM  DEFAULT CHARSET=latin1 AUTO_INCREMENT=11;

 --
 -- Extraindo dados da tabela `produtos`
 --

 INSERT INTO `produtos` (`id`, `produto`, `loja`, `codigo`, `quantidade`) VALUES
 (1, 'cimento', 'LOJA A', '1', 300),
 (2, 'cimento', 'LOJA B', '1', 500),
 (3, 'tijolo', 'LOJA A', '2', 1000),
 (4, 'argila', 'LOJA A', '3', 200),
 (5, 'tijolo', 'LOJA A', '2', 3000),
 (6, 'cimento', 'LOJA C', '1', 250),
 (7, 'cimento', 'LOJA B', '1', 250),
 (8, 'argila', 'LOJA B', '3', 500),
 (9, 'cimento', 'LOJA A', '1', 100),
 (10, 'tijolo', 'LOJA B', '2', 1500);

Com uma consulta tenho o seguinte resultado em uma tabela html:

LOJA A | argila |1

LOJA A | cimento |2

LOJA A | tijolo |2

LOJA B | argila |1

LOJA B | cimento |2

LOJA B | tijolo |1

LOJA C | cimento |1

Agora gostaria de saber se há como exibir o resultado assim:

-------------|argila|cimento|tijolo

LOJA A-----|--1---|----2----|--2

LOJA B-----|--1---|----2----|--1

LOJA C-----|--0---|----0----|--1

Editado por RRH
Link para o comentário
Compartilhar em outros sites

2 respostass a esta questão

Posts Recomendados

  • 0

Bom dia, como o amigo ai de cima falou seria melhor montar a tabela de outra forma.

Mas eu fiz aqui um jeito que fica como você gostaria no seu exemplo, não é o melhor. Mas chega no resultado esperado.

<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
            <title></title>
    </head>
    <body>
        <?php
        mysql_connect('127.0.0.1', 'user', 'password');
        mysql_select_db('estoque');
        ?>
        <table border="1">
            <thead>
                <tr>
                    <th>&nbsp;</th>
                    <?php
                    $sql_produto = mysql_query("SELECT produto,codigo FROM produtos group by produto order by codigo");
                    while ($resultao_produto = mysql_fetch_array($sql_produto)) {
                        echo "<th>$resultao_produto[produto]</th>\n";
                    }
                    ?>
                </tr>
            </thead>
            <tbody>
                <?php
                $sql_loja = mysql_query("SELECT loja FROM produtos group by loja");
                while ($resultao_loja = mysql_fetch_array($sql_loja)) {
                    echo "<tr>\n";
                    echo "<td>$resultao_loja[loja]</td>";
                    $sql_codigo = mysql_query("SELECT codigo from produtos group by codigo") or die(mysql_error());
                    while ($resultado_codigo = mysql_fetch_array($sql_codigo)) {
                        $sql_quantidade = mysql_query("SELECT *,sum(quantidade) as soma FROM produtos where loja = '$resultao_loja[loja]' 
                                                                              and codigo = '$resultado_codigo[codigo]' ")or die(mysql_error());
                        while ($resultado_quantidade = mysql_fetch_array($sql_quantidade)) {
                            echo "<td>$resultado_quantidade[soma]</td>\n";
                        }
                    }
                    echo "</tr>\n";
                }
                ?>
            </tbody>
        </table>
    </body>
</html>

T+

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
      152,3k
    • Posts
      652,5k
×
×
  • Criar Novo...