Advertisement
LucianoCharles2017

table-with-{for}-for-{foreach}

Nov 18th, 2018
158
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 6.09 KB | None | 0 0
  1. <?php
  2. session_start();
  3.  
  4. require 'config.php';
  5.  
  6. $idUsuario = $_SESSION['idUsuario'];
  7. $sql = "SELECT * FROM usuarios WHERE idUsuario = :id_usuario";
  8. $sql = $pdo->prepare($sql);
  9. $sql->bindValue(":id_usuario", $idUsuario);
  10. $sql->execute();
  11.  
  12. if ($sql->rowCount() > 0) {
  13.     $user3 = $sql->fetch();
  14.  
  15. }
  16. $id_OM = $_SESSION['idUsuario'];
  17. $sql = "SELECT * FROM usuarios WHERE id_OM = :id_usuario";
  18. $sql = $pdo->prepare($sql);
  19. $sql->bindValue(":id_usuario", $idUsuario);
  20. $sql->execute();
  21.  
  22. if ($sql->rowCount() > 0) {
  23.  
  24.     $dado = $sql->fetch();
  25.     $_SESSION['idUsuario'] = $dado['id_OM'];
  26.  
  27. }
  28. $id_OM = $_SESSION['id_OM'];
  29.  
  30.  
  31. if (isset($_SESSION['idUsuario']) && empty($_SESSION['idUsuario']) == false) {
  32.  
  33. } else {
  34.  
  35.     header("Location:login.php");
  36. }
  37.  
  38. require "menu.php";
  39. ?>
  40. <div class="container" >
  41.     <div class="row">
  42.  
  43. <?php
  44.  
  45. $produtos_group = "SELECT idProduto,classeProduto FROM produtos
  46.                   INNER JOIN rel_empresa_materiais AS m ON produtos.classeProduto = m.classe_produto
  47.                   GROUP BY classeProduto
  48.                   ORDER BY classeProduto ASC";
  49.  
  50. $produtos_group = $pdo->prepare($produtos_group);
  51. $produtos_group->execute();
  52.  
  53. $empresas = "SELECT * FROM empresa AS e
  54.             INNER JOIN rel_empresa_materiais AS m ON e.idOM = m.idEmpresa
  55.             GROUP BY m.idEmpresa";
  56.  
  57. $empresas = $pdo->prepare($empresas);
  58. $empresas->execute();
  59.  
  60. $array = [
  61.     'p_group' => $produtos_group->fetchAll(),
  62.     'empresas' => $empresas->fetchAll(),
  63. ];
  64.  
  65.  
  66. $t = null;
  67. /**
  68.  *PRECISO SABER QUAL DOS INDICES TEM MAIS VALUES
  69.  * ASSIM POSSO FAZER O FOR PELO MAIOR VALOR
  70.  */
  71. foreach ($array as $a) {
  72.     $t[] = count($a);
  73. }
  74.  
  75. $total = max($t);
  76.  
  77. // for ($p_group = 0; $p_group <= count($array['p_group']) - 1; $p_group++) {
  78.     foreach($array['p_group'] as $grupoClasse){
  79.         echo '<h1>Classe ' . $grupoClasse['classeProduto'] . '</h1>';
  80.         echo '<table class="table table-striped table-bordered">';
  81.         echo '<thead>';
  82.         echo '<tr>';
  83.  
  84.     if (isset($grupoClasse['classeProduto'])) {
  85.  
  86.         echo '<th>Produtos</th>';
  87.  
  88.         // for ($p = 0; $p <= $total; $p++) {
  89.             foreach($array['empresas'] as $empresas){
  90.             echo (isset($empresas['nome_OM'])) ? "<th>{$empresas['nome_OM']}</th>" : "";
  91.         }
  92.  
  93.         echo '<th>Total</th>';
  94.         echo '</tr>';
  95.         echo '</thead>';
  96.         echo '<tbody>';
  97.  
  98.         $classeProduto = $grupoClasse['classeProduto'];
  99.         $produtos_where = "SELECT * FROM produtos WHERE classeProduto = :classeProduto ";
  100.  
  101.         $produtos_where = $pdo->prepare($produtos_where);
  102.         $produtos_where->bindValue(":classeProduto", $classeProduto);
  103.         $produtos_where->execute();
  104.         $count = $produtos_where->fetchAll();
  105.  
  106.         // for ($p = 0; $p <= count($count) - 1; $p++) {
  107.             foreach($count as $prod){
  108.  
  109.             echo "<tr>";
  110.  
  111.             echo (isset($prod['nomeProduto'])) ? "<td>{$prod['nomeProduto']}</td>" : "<td></td>";
  112.  
  113.             foreach($array['empresas'] as $empresas){
  114.  
  115.                 $idEmpresa = $empresas['idOM'];
  116.                 $id_produto = $prod['idProduto'];
  117.                 $classe_produto = $prod['classeProduto'];
  118.  
  119.                 $qtd = "SELECT quantidade_produto
  120.                          FROM rel_empresa_materiais
  121.                          WHERE idEmpresa = :idEmpresa
  122.                          AND id_produto = :id_produto
  123.                          AND classe_produto = :classe_produto ";
  124.  
  125.                 $qtd = $pdo->prepare($qtd);
  126.                 $qtd->bindValue(":idEmpresa", $idEmpresa);
  127.                 $qtd->bindValue(":id_produto", $id_produto);
  128.                 $qtd->bindValue(":classe_produto", $classe_produto);
  129.  
  130.                 $qtd->execute();
  131.                 if ($qtd->rowCount() > 0) {
  132.                     echo "<td style='color:red;background-color:yellow;font-weight:bold'>{$qtd->fetch()['quantidade_produto']}</td>";
  133.                 } else {
  134.                     echo "<td>0</td>";
  135.                 }
  136.  
  137.             }
  138.  
  139.             $total_produto_id = $prod['idProduto'];
  140.             $total_produto = "SELECT SUM(quantidade_produto) AS total_produto
  141.                              FROM rel_empresa_materiais
  142.                              WHERE id_produto = :total_produto ";
  143.  
  144.             $total_produto = $pdo->prepare($total_produto);
  145.             $total_produto->bindValue(":total_produto", $total_produto_id);
  146.             $total_produto->execute();
  147.             if ($total_produto->rowCount() > 0) {
  148.                 echo "<td>{$total_produto->fetch()['total_produto']}</td>";
  149.             }
  150.         }
  151.  
  152.         echo "</tr>";
  153.         echo '<tr>';
  154.         echo '<td>Total</td>';
  155.  
  156.         foreach($array['empresas'] as $empresas){
  157.  
  158.             $idEmpresa = $empresas['idOM'];
  159.             $classe_produto = $grupoClasse['classeProduto'];
  160.             $total_empresa = "SELECT SUM(quantidade_produto) AS total
  161.                              FROM rel_empresa_materiais
  162.                              WHERE idEmpresa = :idEmpresa
  163.                              AND classe_produto = :classe_produto ";
  164.  
  165.             $total_empresa = $pdo->prepare($total_empresa);
  166.             $total_empresa->bindValue(":idEmpresa", $idEmpresa);
  167.             $total_empresa->bindValue(":classe_produto", $classe_produto);
  168.             $total_empresa->execute();
  169.  
  170.             echo "<td>";
  171.             echo $total_empresa->fetch()['total'];
  172.             echo "</td>";
  173.  
  174.             $total_geral_produto = "SELECT SUM(quantidade_produto) AS total_geral_produto
  175.                                    FROM rel_empresa_materiais
  176.                                    WHERE classe_produto = :classe_produto ";
  177.         }
  178.  
  179.         $total_geral_produto = $pdo->prepare($total_geral_produto);
  180.         $total_geral_produto->bindValue(":classe_produto", $classe_produto);
  181.         $total_geral_produto->execute();
  182.  
  183.         if ($total_geral_produto->rowCount() > 0) {
  184.             echo "<td>{$total_geral_produto->fetch()['total_geral_produto']}</td>";
  185.         }
  186.  
  187.         echo '</tr>';
  188.         echo '</tbody>';
  189.         echo '</table>';
  190.  
  191.     }
  192. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement