Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Alison_Melo

Relatorio com titulo agrupado

Recommended Posts

Bom dia a todos,

 

Estou desenvolvendo um sistema onde possui três tabelas e uma tabela é de relacionamento.. as consultas estão OK, porém eu preciso separar os titulos pelo conteudo agrupado..

 

Por exemplo..

 

Tenho filmes e em cada filme tenho vinculado varios atores, porém, quando eu listo, ele repete varias vezes o filme.

 

O que eu preciso é que exiba apenas uma vez o filme e logo abaixo todos os atores vinculados, e assim sucessivamente,
Sei que com group_by eu consigo o titulo (estou utilizando codeigniter), porém eu consigo os dados em tabelas separadas, e queria exibir na mesma.

 

------------------Filme 1 -----------------
ator 1

ator 2

ator 3

-----------------Filme 2-----------------

ator1

ator2

-----------------Filme 3-----------------

ator 1

ator 2

ator 3

 

Como posso proceder? posso criar um foreach aninhado?

Se puderem me dar um norte quanto a este assunto fico grato!

 

Abraços!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Fala Alisson!

 

Cara sei que tem jeito mais elegante para fazer do que da forma que vou mostrar mais acho que da para adiantar o teu caso:

 

Entrada:

 

 

 
<?php 
 
$dadosDoBanco[0] = array('filme' => 'titulo filme 1', 
 'autor'  => 'autor1 do filme 1');
 
$dadosDoBanco[1] = array('filme' => 'titulo filme 1', 
 'autor'  => 'autor2 do filme 1');
 
$dadosDoBanco[2] = array('filme' => 'titulo filme 1', 
 'autor'  => 'autor3 do filme 1');
 
$dadosDoBanco[3] = array('filme' => 'titulo filme 2', 
 'autor'  => 'autor1 do filme 2');
 
$dadosDoBanco[4] = array('filme' => 'titulo filme 2', 
 'autor'  => 'autor2 do filme 2');
 
$dadosDoBanco[5] = array('filme' => 'titulo filme 2', 
 'autor'  => 'autor3 do filme 2');
 
$filme = '';
 
foreach ($dadosDoBanco as $filmeAutor) {
if($filmeAutor['filme'] != $filme){
$filme = $filmeAutor['filme'];
 
echo "<br>Filme :".$filme."<br>";
echo "Autor :".$filmeAutor['autor']."<br>";
 
}else{
echo "Autor :".$filmeAutor['autor']."<br>";
}
}
 
 
 ?>
 

 

 

saida:

 

Filme :titulo filme 1
Autor :autor1 do filme 1
Autor :autor2 do filme 1
Autor :autor3 do filme 1

Filme :titulo filme 2
Autor :autor1 do filme 2
Autor :autor2 do filme 2
Autor :autor3 do filme 2

 

Vê se era isso que gostaria, mas tenta melhorar o código blz.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Fala Alisson!

 

Cara sei que tem jeito mais elegante para fazer do que da forma que vou mostrar mais acho que da para adiantar o teu caso:

 

Entrada:

 
<?php 
 
$dadosDoBanco[0] = array('filme' => 'titulo filme 1', 
 'autor'  => 'autor1 do filme 1');
 
$dadosDoBanco[1] = array('filme' => 'titulo filme 1', 
 'autor'  => 'autor2 do filme 1');
 
$dadosDoBanco[2] = array('filme' => 'titulo filme 1', 
 'autor'  => 'autor3 do filme 1');
 
$dadosDoBanco[3] = array('filme' => 'titulo filme 2', 
 'autor'  => 'autor1 do filme 2');
 
$dadosDoBanco[4] = array('filme' => 'titulo filme 2', 
 'autor'  => 'autor2 do filme 2');
 
$dadosDoBanco[5] = array('filme' => 'titulo filme 2', 
 'autor'  => 'autor3 do filme 2');
 
$filme = '';
 
foreach ($dadosDoBanco as $filmeAutor) {
if($filmeAutor['filme'] != $filme){
$filme = $filmeAutor['filme'];
 
echo "<br>Filme :".$filme."<br>";
echo "Autor :".$filmeAutor['autor']."<br>";
 
}else{
echo "Autor :".$filmeAutor['autor']."<br>";
}
}
 
 
 ?>
 

saida:

 

Filme :titulo filme 1

Autor :autor1 do filme 1

Autor :autor2 do filme 1

Autor :autor3 do filme 1

 

Filme :titulo filme 2

Autor :autor1 do filme 2

Autor :autor2 do filme 2

Autor :autor3 do filme 2

 

Vê se era isso que gostaria, mas tenta melhorar o código blz.

 

Cara, quanta boa vontade hein?,

Pessoas assim restauram a fé na humanidade haha,

Desculpa tomar seu tempo e obrigado por se dedicar a me ajudar nesta questão.

 

Deu certo sim!

Muito obrigado!

Compartilhar este post


Link para o post
Compartilhar em outros sites

  • Conteúdo Similar

    • Por clovis.sardinha
      Como fazer para colocar um spinner antes de carregar os dados do bd? Eu clico no link e entra na função do controle e só vai para a página da views quando já está pronto a query. Vi uns exemplos de colocação de spinner, mas se a página ainda não apareceu como faço? Vou anexar a função que chama a página para facilitar. 
      public function inativos()  {     $session = \Config\Services::session();     $pager = \Config\Services::pager();     $usuarios=$this->usuarios->getInativos();//faz a query no bd.     $dados=[         'usuarios'=>$usuarios,         'pager'=>$this->usuarios->pager,     ];     echo view('Admin/Relatorios/listaInativos',$dados); }   
    • Por mark1978
      Boa noite srs, tem o código abaixo e esta funcionando normal e carregando o Qrcode no HTML na soma.
      Porém gostaria de alterar e que fosse da seguinte forma:
      Se "totalServico" for menor que "totalProdutos" e diferente de zero então carregue o Qr Code com esse valor
      Se não o valor for "0,00" carregue o valor "totalProdutos". Essa finalidade é para ter uma opção de desconto.
       
      <?php use Piggly\Pix\StaticPayload; class Os_model extends CI_Model { public function getProdutos($id = null) { $this->db->select('produtos_os.*, produtos.*'); $this->db->from('produtos_os'); $this->db->join('produtos', 'produtos.idProdutos = produtos_os.produtos_id'); $this->db->where('os_id', $id); return $this->db->get()->result(); } public function getServicos($id = null) { $this->db->select('servicos_os.*, servicos.nome, servicos.preco as precoVenda'); $this->db->from('servicos_os'); $this->db->join('servicos', 'servicos.idServicos = servicos_os.servicos_id'); $this->db->where('os_id', $id); return $this->db->get()->result(); } public function valorTotalOS($id = null) { $totalServico = 0; $totalProdutos = 0; if ($servicos = $this->getServicos($id)) { foreach ($servicos as $s) { $totalServico = $totalServico + $s->preco; } } if ($produtos = $this->getProdutos($id)) { foreach ($produtos as $p) { $totalProdutos = $totalProdutos + $p->subTotal; } } return ['totalServico' => $totalServico, 'totalProdutos' => $totalProdutos]; } public function getQrCode($id, $pixKey, $emitente) { if (empty($id) || empty($pixKey) || empty($emitente)) { return; } $result = $this->valorTotalOS($id); $amount = round(floatval($result['totalServico'] + $result['totalProdutos']), 2); if ($amount <= 0) { return; } $pix = (new StaticPayload()) ->applyValidCharacters() ->applyUppercase() ->setPixKey(getPixKeyType($pixKey), $pixKey) ->setMerchantName($emitente->nome, true) ->setMerchantCity($emitente->cidade, true) ->setAmount($amount) ->setTid($id) ->setDescription(sprintf("%s OS %s", $emitente->nome, $id), true); return $pix->getQRCode(); } }  

    • Por Samuel Pietro
      Olá pessoal!

      Preciso da ajuda de vocês no seguinte!
      Tenho um arquivo retornos.json
       
      { "retornos": [ { "id": 1, "sigla": "00", "nome": "Efetuado" }, { "id": 2, "sigla": "01", "nome": "Inválido" }, { "id": 3, "sigla": "02", "nome": "Corrompido" } ] }
      E na minha aplicação feita com CodeIgniter tenho uma consulta que me mostra a sigla que está cadastrada no BD.
       
      foreach ($results as $r) {  $retorno = $r->codRetorno; } 
      Eu preciso que essa consulta ao me retornar a sigla 02 por exemplo o echo apresente o "nome" para tal "sigla" que esta cadastrada no JSON.

      No caso seria a seguinte lógica: 
      if ("$retorno" == JSON["sigla"]){ echo JSON["nome"];  } //ESTE NÃO É UM CÓDIGO VÁLIDO, É APENAS PARA FINS DE ENTENDER A LÓGICA DO QUE EU PRECISO. // PS. ESSA LOGICA PRECISA SER APLICADA DENTRO DE UM FOREACH COM MILHARES DE REGISTROS.
      Como eu posso fazer isso?
       
    • Por fideles
      Galera, 
       
      Alguém aqui já criou algum relatorio em php que seja gravado em abas ? Como ? Tenho um que é uma em unica pagina/ aba, e não faço a minima ideia de como fazer isso. 
    • Por buganti
      Olá!
       
      Estou me familiarizando com o codeigniter e desenvolvendo um site, a estrutura dele montei usando o conceito de uma página só, então eu tenho algumas section que ao clicar nos botões do menu a página vai até a section referenciada, porém, me surgiu uma questão, uma dessas section terá referências a outras páginas separadas, por exemplo, terei alguns cards com produtos, ao clicar em algum desses cards abrirá uma nova página com mais detalhes sobre esse produto, aí nessa página o meu será o mesmo, via template, só que ao clicar no botões ele busca as referências das section da página principal (única) e aí não funciona para voltar para lá, como eu deveria fazer essa referência de forma que funciona-se para ambas as situações?
       
      Não sei se fui clara na minha dúvida, se caso for necessário posso tentar me explicar melhor.
       
      Desde já agradeço.
×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.