Jump to content
Fórum Script Brasil
  • 0

Ajuda com consulta


RRH

Question

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

Edited by RRH
Link to comment
Share on other sites

2 answers to this question

Recommended Posts

  • 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 to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.



  • Forum Statistics

    • Total Topics
      152.2k
    • Total Posts
      652k
×
×
  • Create New...