Jump to content

imprimir resultados do mysql em tabela


Recommended Posts

Posted

Boas pessoal,

Indo direto ao assunto:
1- Um produto é constituído por varias peças.
2- O preço do produto é calculado pela soma de todas as peças que o constituem.
3- A quantidade necessária de cada peça é calculada conforme a altura e largura desejada do produto final.

Posto isto, consigo imprimir uma tabela altura por largura para cada uma das peças do produto, o meu objectivo seria fundir as tabelas e ter só uma já com o preço total para cada medida
EX: (valores fictícios para exemplificar)
Peça 1                             Peça2
A\L  10  20  30  40           A\L 10 20 30 40   

5     15  25  35  45             5   2    4   6   8

6     16  26   36  46            6   2    3   4   5

O objectivo seria ter uma só tabela com a soma das duas:

A\L  10  20  30  40             

5     17  29  41  53          

6     18  29  40  51   

Segue o meu código:

Citação

<?php
    if (mysqli_num_rows($resultadotab)>0) {
    $rowtab=mysqli_fetch_array($resultadotab);
    if(mysqli_num_rows($resultadoppc)>0){
      while($rowppc=mysqli_fetch_array($resultadoppc)){
    ?>
    <!-- TABELA DE TODOS OS PREÇOS DE UMA PEÇA DE UM PRODUTO -->
    <table border="1">
      <tr>
        <th>A\L</th>
    <?php
    $largura=unserialize($rowtab["largura"]);
    $altura=unserialize($rowtab["altura"]);
    echo"teste<br>";
    for($i=0 ; $i<count($largura); $i++ ){  
    echo "<th>".$largura[$i]."</th>";
        }
    echo "</tr>";
    for($a=0; $a<count($altura); $a++){
        echo "<tr>";
        echo "<td><strong>".$altura[$a]."</strong></td>";
        for ($i=0 ; $i<count($largura); $i++){
            $formula=eval('return'.$rowppc["ppc_funcao"] .';');
         echo "<td>".$formula."</td>";   

        }
        echo "</tr>";   
    }
}
    ?>
 </table>
     <?php }}
    ?>

Será algo no ciclo for ou while, estará a faltar me algo, preciso da vossa ajuda para imprimir uma unica tabela com a soma dos valores.

Cumps,
 

Posted
50 minutos atrás, HappyHippyHippo disse:

não seria mais interessante fazer isso do lado do SQL ?

e como o faria?
A altura e a largura estão guardadas em array, se não iria ter uma tabela para cada produto, assim chamo a linha correspondente e construo a tabela com as medidas lá guardadas

Posted
12 minutes ago, serj_tankian said:

e como o faria?
A altura e a largura estão guardadas em array, se não iria ter uma tabela para cada produto, assim chamo a linha correspondente e construo a tabela com as medidas lá guardadas

por outras palavras : a pensar que ias ter menos trabalho, acabaste por ter muito mais ao fim do caminho, certo ?

IRC : sim, é algo que ainda existe >> #p@p
Posted
Agora, HappyHippyHippo disse:

por outras palavras : a pensar que ias ter menos trabalho, acabaste por ter muito mais ao fim do caminho, certo ?

sim, o objectivo é tornar sempre tudo mais simples e claro...
a base de dados terá mais de 100 produtos, o que provavelmente acrescentaria mais 100 tabelas só para guardar as medidas de cada produto, feito desta maneira consigo simplificar todo o processo, só estou a ter dificuldades em somar os campos direitos e juntar na mesma tabela (como tenho no exemplo que dei em cima)

Posted

se o objectivo é de tornar tudo mais simples, foste exactamente pelo caminho errado, como podes ver pelo problema que tens agora.

e essa tua ideia de ter mais 100 tabelas para tamanhos diferentes, está completamente errada, terias somente mais uma única tabela.

resultado : tens de fazer tudo à mão agora em PHP ... pior do que isso, é usar a instrução eval no meio do mesmo PHP

o que tens de fazer agora é iterar por todas as tabelas que queres compor, iterar por todas as alturas e todas as larguras, calcular o resultado e compor uma tabela final.

difícil? não. desnecessário ? completamente.

IRC : sim, é algo que ainda existe >> #p@p
Posted
7 minutos atrás, HappyHippyHippo disse:

se o objectivo é de tornar tudo mais simples, foste exactamente pelo caminho errado, como podes ver pelo problema que tens agora.

e essa tua ideia de ter mais 100 tabelas para tamanhos diferentes, está completamente errada, terias somente mais uma única tabela.

resultado : tens de fazer tudo à mão agora em PHP ... pior do que isso, é usar a instrução eval no meio do mesmo PHP

o que tens de fazer agora é iterar por todas as tabelas que queres compor, iterar por todas as alturas e todas as larguras, calcular o resultado e compor uma tabela final.

difícil? não. desnecessário ? completamente.

acredito que não tenha tomado o caminho mais facil no final, o problema agora é adoptar um script certo, e ao chegar nesse ponto, consigo fazer para todos os produtos.
a instrução eval se é por causa da segurança não tem problema, isto não será para estar online, apenas numa rede local..
o eval utilizei devido a isto... cada peça terá uma função de calculo unica, e essa função vai variar se a peça fizer parte do produto A ou do produto B, assim ao adicionar uma peça a um determinado produto, vai guardar na bd tambem a função de calculo correspondente, depois é só chamar esse campo.
As dimensões da tabela são variáveis de produto para produto, daí guardar todas as medidas numa tabela chamada "tabela"
Aí estão os campos largura, altura, produto (para associar ao produto a tabela).
Largura e altura são dois arrays que guardam os valores da altura e da largura para formar a tabela.

É um bocado complexo estar a explicar toda a base de dados...

Posted (edited)
11 minutos atrás, HappyHippyHippo disse:

Isso já fiz, mostra me as tabelas de todas as peças que compoem um produto, o que me falta é pegar nessas tabelas todas e somar os valores e imprimir a tabela final do produto (que é a soma de todas as tabelas das peças).
Falta me esse ponto que não estou a conseguir chegar lá, algo me falha no algoritmo, daí precisar de uma "luz" para me orientar

Edited by serj_tankian

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.