-
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 L@nder
Olá pessoal
Estou quebrando a cabeça para fazer com que o php liste as categorias e sub-categorias.do menu da página que estou fazendo.
A estrutura do menu deve ser esta
============================
Categoria 1
Subcategoria Subcategoria Subcategoria Categoria 2
Subcategoria Subcategoria Subcategoria Categoria 3
Subcategoria Subcategoria Subcategoria ==============================
Eu fiz a consulta e fiz com que as categorias sejam listadas, porém não estou conseguindo fazer listar abaixo de cada categoria suas respectivas sub-categorias.
Segue abaixo o código que estou usando para listar as categorias.
<?php
$sql = mysqli_query($conn, "SELECT * FROM categoria ORDER BY categoria ASC");
while($dados=mysqli_fetch_array($sql))
{
echo '<li><span class="opener">' . $dados['categoria'] . '</span><ul>';
echo '<li><a href="#">subcategoria</a></li>'; //E justamente nesta linha que preciso fazer aparecer as subcategorias que estão na tebela "sub_categoria"
echo '</ul></li>';
}
?>
Se alguém puder me ajudar ficarei agradecido.
-
Por Paulo Dos Reis
Bom tarde.
Estou com dificuldade em inserir um conteúdo dentro de uma subcategoria ou pagina de lista de produtos em minha loja.(somente
html)
por exemplo eu tenho uma categoria (A ) e tenho duas subcategorias (B) E (C) dentro de (A). Eu consegui colocar o conteúdo dentro das subcategorias (B) e (C), mas quero o conteúdo só dentro da subcategoria (B). O codigo que eu cheguei a isso é:
{{#list_page}} ------->Tag de abertura da página de listagem de produtos
{{#each categories}}----->Itera sobre as categorias.
{{#each children}} ----> Itera sobre as subcategorias.
{{#if is_current}} ------->Renderiza o conteúdo do bloco se a página da categoria ou subcategoria estiver sendo exibida.
<p>conteudo aqui</p>
{{/if}}
{{/each}}
{{/each}}
{{/list_page}}
Tenho quase certeza que preciso especificar a url da subcategoria mas não encontro uma maneira de fazer isso. como??.
-