Ir para conteúdo
  • ×   Você colou conteúdo com formatação.   Remover formatação

      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.

  • Conteúdo Similar

    • Por bruno SALVIATI
      Olá estou precisando de ajuda com subcategorias, eu tenho um banco de dados que tem tabelas abaixo :

       
      acima mostra a tabela de categorias
       
      abaixo a de produtos
       

       
      posto isso eu no meu index retorno as categorias usando um foreach, solicitando que tudo que for categoria seja listado ou seja eu nao escrevo o nome de cada uma eu faço o banco fazer uma lista no meu layout mostrando todas as categorias que eu tenho, e cada uma puxa os produtos mas eu preciso criar uma subcategorias por exempplo

      marcar, como honda, fiat , renoaut por exemplo, 
      ai estas sao as categorias primarias 
      quando listar e alguem clicar ou passar o mouse sobre a Honda por exemplo
      Tem que aparecer as subs por exemplo
       
      carros, peças, cabeçote , pino, seja la o que for, estou dando um exemplo que tem bastante subcategorias, preciso pegar este bando e fazer ele me trazer subs atraves das categorias pensei em usar o ID da tabela um ou a REFERENCIA da tabela 2 mas infelizmente ainda estou estudando e nao faço a menor ideia de como fazer isso vou deixar meu codigo foreach aqui embaixo :


       
       <div class="col-md-6">
                                <div class="list-group">
                                  <div class="header-search">
                                     <form method="POST">
                                           <div class="dropdown">
                                                <select class="dropbtn" ><option align="center" hidden> <i class="glyphicon glyphicon-list">Categorias</i></option></select>
                                                <div class="dropdown-content">
                                               <a href="{$PAG_PRODUTOS}">Todos</a> 
                                                   
                                                {foreach from=$CATEGORIAS item=C}
                                                 <a href=" {$C.cate_link}">{$C.cate_nome}</a> 
                                                {/foreach}
                                                
                                              
                                          </div>
                                         </div>
                                         <form method="POST">
                                        <input name="txt_buscar" class="input" placeholder="Digite para buscar">
                                        <button class="search-btn">Buscar</button>
                                        </form>
                                      </form>
                                  </div> 
                              </div> 
                            </div> 


      e este é o PHP da categorias se precisar do de produtos me avise, no momento esta funcionando perfeitaente o que estou pedindo é ajuda para inserir subcategorias utilizando o que tenho feito

      PHP

       
      <?php 
      Class Categorias extends Conexao{
          private $cate_id, $cate_nome, $cate_slug;
          

          function __construct(){
              parent::__construct();
          }
          function GetCategorias(){
              //query para buscar os produtos de uma categoria especifica.
              $query = "SELECT * FROM {$this->prefix}categorias";
              $this->ExecuteSQL($query);
              $this->GetLista();
              
          }
          private function GetLista(){
              $i = 1;
              while($lista = $this->ListarDados()):
              $this->itens[$i] = array(
                   'cate_id' => $lista['cate_id'],
                   'cate_nome'  => $lista['cate_nome'] ,  
                   'cate_slug'  => $lista['cate_slug'] ,  
                   'cate_link'  => Rotas::pag_Produtos(). '/' .$lista['cate_id'] . '/' . $lista['cate_slug']  , 
                  
                  'cate_link_adm'  => Rotas::pag_ProdutosADM(). '/' .$lista['cate_id'] . '/' . $lista['cate_slug']  , 
                          );
              $i++;
              endwhile;
          }
          function Inserir($cate_nome){
              
              // trato os campos
              $this->setCate_nome($cate_nome);
              $this->setCate_slug($cate_nome);

              
              // monto a SQL
              $query = " INSERT INTO {$this->prefix}categorias (cate_nome, cate_slug )";
              $query.= " VALUES (:cate_nome, :cate_slug )";
              // passo so parametros
              $params = array(':cate_nome' => $this->getCate_nome(),
                              ':cate_slug' => $this->getCate_slug(),
                            
                  );
              // executo a minha SQL
                  if($this->ExecuteSQL($query, $params)):
                      return TRUE;
                      
                  else:
                      return FALSE;
                      
                  endif;
              
              
          }

          function Editar($cate_id,$cate_nome){
              
              // trato os campos
              $this->setCate_nome($cate_nome);
              $this->setCate_slug($cate_nome);
              
              // monto a SQL
              $query = " UPDATE {$this->prefix}categorias ";
              $query.= " SET cate_nome = :cate_nome, cate_slug = :cate_slug ";
              $query.= " WHERE cate_id = :cate_id ";
              // passo so parametros
              $params = array(':cate_nome' => $this->getCate_nome(),
                              ':cate_slug' => $this->getCate_slug(),
                              ':cate_id'   => (int)$cate_id,
                  );
              // executo a minha SQL
                  if($this->ExecuteSQL($query, $params)):
                      return TRUE;
                      
                  else:
                      return FALSE;
                      
                  endif;
              
              
          }
           function Apagar($cate_id){
              
                // verifico se  tenho itens antes de apagar a categoria
                $pro = new Produtos();
                $pro->GetProdutosCateID($cate_id);
                
              if( $pro->TotalDados() > 0):
                    echo '<div class="alert alert-danger" > Esta categoria tem: ';
                    echo $pro->TotalDados();
                    echo ' produtos. Não pode ser apagada, para apagar precisa primeiro apagar os produtos dela </div>';
           
                    // se nao tiver produtos nela  eu apago 
               else:
                  
                       // monto a SQL
              $query = " DELETE FROM {$this->prefix}categorias";
              $query.= " WHERE cate_id = :id";
              
              // passo os parametros
              $params = array(':id' => (int)$cate_id);
              // executo a SQL
          
               if($this->ExecuteSQL($query, $params)):
                      return TRUE;
                      
                  else:
                      return FALSE;
                      
                  endif;
              
              endif;
           
              
          }
          
          //MÉTODOS GET
           function getCate_nome() {
              return $this->cate_nome;
          }
          function getCate_slug() {
              return $this->cate_slug;
          }
          //MÉTODOS SET
          function setCate_nome($cate_nome) {
             
              $this->cate_nome = filter_var($cate_nome, FILTER_SANITIZE_STRING);
          }
          function setCate_slug($cate_slug) {
             
              
              $this->cate_slug = Sistema::GetSlug($cate_slug);
          }
      }
       ?>
       
    • Por gust.php
      Prezados, boa noite.
       
      Nunca fiz isso e estou dúvidas.
       
      Tenho as tabelas CATEGORIAS e SUBCATEGORIAS. Os cadastros e relacionamentos estão funcionando perfeitamente, tudo ok aqui.
      Tenho também a tabela PRODUTOS.
       
      Digamos que eu tenha produtos que fazem parte de categorias que não tem subcategoria, e tenho produtos que fazem parte de subcategorias de alguma categoria.
       
      Como fazer o relacionamento desses produtos?
       
      Vou relacionar a tabela PRODUTOS com CATEGORIAS e SUBCATEGORIAS ?
      A dúvida surgiu pois um produto pode fazer parte de uma categoria que não tem subcategoria, mas posso ter também produtos que fazem parte de subcategorias de uma categoria.
      E qual a cardinalidade desse relacionamento?
       
      Ja vi gente fazendo o relacionamento só com SUBCATEGORIA, mas e se não existir subcategoria????
       
      produto many to many categoria
      produto many to many subcategoria
       
      produto
      id | produto 
       
      prod_cat
      cat_id | prod_id
       
      categoria
      id | categoria 
       
      subcategoria
      id | categoria 
       
      prod_subcat
      subcat_id | prod_id
       
      Como resolver isso de um forma correta?
    • Por luiscarlos5046
      Olá Galera!
      Alguém pode me dar um help?
      Nesta Query eu listo todos os subgrupos(subcategorias) de um grupo(categoria), mas gostaria de não exibir os subgrupos vazios.... alguém tem algum exemplo pra me passar?
       
      SELECT g.*, sg.id AS idsg, sg.subgrupo FROM grupo g, subgrupo sg, produtos p WHERE sg.id = p.id_subgrupo AND sg.id_grupo = 1 GROUP BY sg.id ou esse
       
      SELECT grupo.*, subgrupo.id AS idsg, subgrupo.subgrupo FROM grupo INNER JOIN subgrupo ON subgrupo.id_grupo = grupo.id WHERE grupo.id = 1 Ambos funcionam da mesma forma, mas traz uma subcategoria cuja não existem produtos cadastrados (Vazios)
       
      Alguém pode me dar uma luz de como fazer isso?
×

Informação importante

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