Jump to content
Sign in to follow this  
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!

Share this post


Link to post
Share on other 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.

Share this post


Link to post
Share on other 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!

Share this post


Link to post
Share on other sites

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
Sign in to follow this  

  • Similar Content

    • By Pellegrini3834
      Olá amigos do fórum estou com um problema e não consigo resolver.
      Tenho um menu que chama um controle chamado  ctlPessoa  na classe controller e dentro um método index() e outro metodo cadastrarPessoa().
      O problema e quando eu chamo esse controle ele emitiu um erro:
       
       
      A PHP Error was encountered
       
       
      Severity: Notice
       
       
      Message: Undefined variable: confirma
       
       
      Filename: visaoPessoa/cadastrar_pessoa.php
       
       
      Line Number: 2
       
       
      Backtrace:
       
       
      File: C:\wamp64\www\CodeIgniter_Crud_01_07_2019\application\views\visaoPessoa\cadastrar_pessoa.php
      Line: 2
      Function: _error_handler
       
       
      File: C:\wamp64\www\CodeIgniter_Crud_01_07_2019\application\controllers\ctlPessoa.php
      Line: 18
      Function: view
       
       
      File: C:\wamp64\www\CodeIgniter_Crud_01_07_2019\index.php
      Line: 315
      Function: require_once
       
      Explicando o erro:
      E pq o método cadastro possui uma variavel array que é chamada  pela view e serve para logo após a ação do método exibir a seguinte mensagem - " PESSOA CADASTRADA COM SUCESSO":
                  $this->load->view('visaoPessoa/cadastrar_pessoa',$mensagem); <---- passando array de mensagem de confirmação que a pessoa foi cadastrada com sucesso
      Mas ele da erro pq chama o método index() no ctlPessoa que somente carrega as views ao invés de chamar ctlPessoa/cadastrarPessoa.
       
      public function index() { $this->load->view('includes/cabecalho'); $this->load->view('includes/conteudo'); $this->load->view('includes/rodape'); $this->load->view("menuPrincipal/menu_principal"); $this->load->view("visaoPessoa/cadastrar_pessoa"); } Como faço para realizar o carregamento da view e fazer o carregamento do metodo ctlPessoa/cadastrarPessoa.
       
       
       
       
       
       
    • By daniellecd
      Bom dia pessoal,
      Estou a desenvolver um relatório utilizando o iReport, mas deparei com um problema que não consigo resolver.
      Monto todo o relatório e coloco a tabela na sessão DETAIL. Faço o dataset, coloco o select, faço o preview do resultado do select, 32 registos, ok!
      Mas quando faço o preview do relatório, o mesmo repete a tabela na mesma quantidade de registros, o que faz com o que um relatório de 1 folha, tenha 32 folhas com a mesma tabela.
      Como faço para resolver?
      Poderiam me ajudar?
      Desde já agradeço imensamente
    • By tatysouzac
      Minha view:
      <div>                            
                                          <form method="post" action="http://localhost/integradorcode/index.php/welcome/validar">
                                          EMAIL: <input type="text" name="email"  /> <br><br>
                                          SENHA:  <input type="password" name="senha"/> <br><br><br><br>
                                          <input class="myButton" type="submit" value="Entrar"/> <br><br>
                                          </form>
                                          <a href="Cadastro.php" class="myButton">Cadastrar</a><br><br>
                                          <a href="#" class="myButton">Esqueceu sua senha?</a>
               </div>
       
       
       
      Controller:
       
          public function validar(){
              //var_dump($_POST);
              $this->load->model("Cadastro_model");
              $result = $this->Cadastro_model->validar($_POST["email"],md5($_POST["senha"]));
              var_dump($result);
          }
       
       
      Model:
       
          function validar($email, $senha){
              return $this->db->query("SELECT * FROM `cadastro_clientes` WHERE email_cliente = '{$email}'  AND senha_cliente = '{$senha}' AND status = 1 LIMIT 1")->result_array();
          }
       
       
      Não da nenhuma mensagem de erro mas coloco senha e login certos do meu bd e o return não retorna nada array 0 
    • By StenioDaty
      Estou criando um sistema com adição de um tópico categoria que assim que é adicionado é chamado na tabela para aparecer na tabela ao lado.
      Estou recebendo o erro abaixo, mas a categoria é cadastrada:
       
      A PHP Error was encountered
      Severity: Warning
      Message: Cannot modify header information - headers already sent by (output started at /storage/ssd5/194/9530194/public_html/application/helpers/funcoes_helper.php:1)
      Filename: helpers/url_helper.php
      Line Number: 564
      Backtrace:
      File: /storage/ssd5/194/9530194/public_html/application/controllers/admin/Categoria.php
      Line: 35
      Function: redirect
      File: /storage/ssd5/194/9530194/public_html/index.php
      Line: 315
      Function: require_once
       
       
       
       
      Segue foto:
       
       
      View Código:
       
      <div id="page-wrapper">
                  <div class="row">
                      <div class="col-lg-12">
                          <h1 class="page-header"><?php echo 'Administrar '.$subtitulo; ?></h1>
                      </div>
                                  </div>
                              <div class="row">                
                      <div class="col-lg-6">
                          <div class="panel panel-default">
                              <div class="panel-heading">
                                 <?php echo 'Adicionar nova '.$subtitulo; ?>
                              </div>
                              <div class="panel-body">
                                  <div class="row">
                                      <div class="col-lg-12">
                                          <?php 
                                          echo validation_errors('<div class="alert  alert-danger">','</div>');
                                          echo form_open('admin/categoria/inserir');
                                          ?>
                                          <div class="form-group">
                                                  <label id="txt-categoria">Nome da Categoria</label>
                                                  <input type="text" id="txt-categoria" name="txt-categoria" class="form-control" placeholder="Entre com o texto">
                                          </div>
                                          <button type="submit" class="btn btn-default">Cadastrar</button>
                                          
                                          <?php
                                          echo form_close();
                                          ?>
                                      </div>
                                      
                                  </div>
                                  <!-- /.row (nested) -->
                              </div>
                              <!-- /.panel-body -->
                          </div>
                          <!-- /.panel -->
                      </div>
                      <!-- /.col-lg-6 -->
                      
                      
                      <div class="col-lg-6">
                          <div class="panel panel-default">
                              <div class="panel-heading">
                                  <?php echo 'Alterar '.$subtitulo. ' existente'; ?>
                              </div>    
                               <?php
                                          $this->table->set_heading("Nome da Categoria","Alterar","Excluir");
                                          foreach($categorias as $categoria){
                                              $nomecat = $categoria->titulo;
                                              $alterar= anchor(base_url('Admin/categoria'),'<i class="fa fa-refresh fa-fw"></i> Alterar');
                                              $excluir=anchor(base_url('Admin/categoria/excluir/'.md5($categoria->id)),' <i class="fa fa-remove fa-fw"></i> Excluir');
                                              
                                              $this->table->add_row($nomecat,$alterar,$excluir);
                                          }
                                          
                                          $this->table->set_template(array(
                                              'table_open' => '<table class="table table-striped">'
                                              ));
                                              
                                              echo $this->table->generate();
                                      ?>           
                                            
                              </div>
                              <div class="panel-body">
                                  <div class="row">
                                      <div class="col-lg-12">
                                          
                                      </div>
                                      
                                  </div>
                                  <!-- /.row (nested) -->
                              </div>
                              <!-- /.panel-body -->
                          </div>
                          <!-- /.panel -->
                      </div>
                      
                      
                  </div>
                  <!-- /.row -->
              </div>
              <!-- /#page-wrapper -->
          </div>
       
       
      MODEL CODE:
       
      <?php
      defined('BASEPATH') OR exit('No direct script access allowed');
      class Categorias_model extends CI_Model {
          
          public $id;
          public $titulo;
          
          public function __construct(){
              parent::__construct();
          }
          
          public function listar_categorias(){
              $this->db->order_by('titulo','ASC');
              return $this->db->get('categoria')->result();
          }
          
          public function publicacao(){
              $this->db->select('usuario.id as idautor, usuario.nome, postagens.id, postagens.titulo, postagens.subtitulo, postagens.user, postagens.data, postagens.img, postagens.categoria, postagens.conteudo');
              $this->db->from('postagens');
              $this->db->join('usuario', 'usuario.id = postagens.user');
              $this->db->where('postagens.id ='.$id);
              return $this->db->get()->result();
          }
          
          public function listar_titulo($id){
              $this->db->from('categoria');
              $this->db->whre('id ='.$id);
              return $this->db->get()->result();
          }
          
          public function adicionar($titulo){
              $dados['titulo'] = $titulo;
              return $this->db->insert('categoria',$dados);
          }
          
          public function excluir($id){
              $this->db->where('md5(id)',$id);
              return $this->db->delete('categoria');
          }
          
      }
       
      CONTROLLER:
       
       
      <?php
      defined('BASEPATH') OR exit('No direct script access allowed');
      class Categoria extends CI_Controller {
          public function __construct(){
              parent::__construct();
              $this->load->model('categorias_model','modelcategorias');
              $this->categorias = $this->modelcategorias->listar_categorias();
          }
          
          public function index()
          {
              
              $dados['categorias'] = $this->categorias;
              $this->load->library('table');
              //Dados a serem enviados para o cabeçalho
              $dados['titulo'] = 'Painel de Controle';
              $dados['subtitulo'] = 'Categoria';
              
              $this->load->view('backend/template/html-header', $dados);
              $this->load->view('backend/template/template');
              $this->load->view('backend/template/categoria');
              $this->load->view('backend/template/html-footer');
          }
          
          public function inserir(){
              $this->load->library('form_validation');
              $this->form_validation->set_rules('txt-categoria','Nome da Categoria', 'required|min_length[3]|is_unique[categoria.titulo]');
              if($this->form_validation->run() == FALSE){
                  $this->index();
              }else{
                  $titulo = $this->input->post('txt-categoria');
                  if($this->modelcategorias->adicionar($titulo)){
                      redirect(base_url('admin/categoria'));
                  }else{
                      echo "Houve um erro no sistema!";
                  }
              }
              
          }
          
          public function excluir($id){
              
              if($this->modelcategorias->excluir($id)){
                      redirect(base_url('admin/categoria'));
                  }else{
                      echo "Houve um erro no sistema!";
                  }
              
          }
          
      }
       
      Gostaria de ajuda para corrigir o erro:
      Desde já agradeço!
       
    • By RodrigoWD3
      Boa tarde pessoal nao sei se estou no tópico correto , gostaria de tira uma duvida quero fazer um sistema de noticias com url amigavel  em codeigniter ja fiz a parte de noticias para exibir e a view porem estou usando a id para exibir as noticias e o que eu gostaria de fazer era usar a url do titulo da noticia ficando uma url amigavel alguém teria algum tutorial para eu poder estudar obrigado
×

Important Information

Ao usar o fórum, você concorda com nossos Terms of Use.