Olá pessoal, não consigo desenvolver uma solução para o problema de listar produtos por categoria. Na página consigo listar as categorias para o usuario escolher. ok. consigo disponibilizar o id da categoria para própria página. Mas não consigo pegar este codigo, enviar ao banco-produto para executar a consulta no banco e devolver a lista de produtos por aquela determinada categoria. Alguém poderia me dar uma luz? Segue o que fiz até o momento:
- escolha-produtos.php
aqui eu recebo o id da categoria e disponibilizo para a pagina.
<?php $categorias = listaCategorias($conexao); ?>
<script type="text/javascript" src="assets/js/jquery.min.js"></script>
<script type="text/javascript">
$(document).ready(function () {
// Evento quando o valor da combo é alterado
$('#select-relatorio').change(function () {
// Redirecionamento por Javascript quando uma das opções com valor for selecionado
if ($(this).val()!="") {
window.location = "escolha-produtos.php?id="+$(this).val();
}
});
});
</script>
aqui eu pego (pelo menos estou tentando) o id da categoria:
<?php
$categorias = listaCategorias($conexao);
$marcas = listaMarcas($conexao);
$id = "";
$comando = "";
if (isset($_GET["id"])) {
$id = $_GET['id'];
$comando = "LISTAR";
}
if ($comando == "LISTAR"){
$produto = listaProdutosporCategoria($conexao, $id);
?>
<div class="section ">
<div class="container container-border">
<div class="title">
<h4>Escolha os Produtos que Deseja Ganhar</h4>
</div>
<div class="row">
<div class="col-md-4">
<div class="card card-product card-plain">
<div class="image">
<a href="#">
<img src="fotos/<?=$produto->getFoto() ?>" alt="Sem Imagem"/>
</a>
</div>
<div class="content">
<a href="#">
<h4 class="title"><?=$produto->getNome() ?></h4>
</a>
<p class="description">
<?= substr($produto->getDescricao(), 0, 40) ?>
</p>
<div class="footer">
<span class="price">R$ <?=$produto->getPreco() ?></span>
<button class="btn btn-danger btn-simple btn-hover pull-right" rel="tooltip" title="" data-placement="left" data-original-title="Adicionar a lista">
<i class="fa fa-heart-o"></i>
</button>
</div>
</div>
</div> <!-- end card -->
</div>
</div>
</div>
<?php
}
?>
este é o banco-produto onde estou tentando fazer a query para o BD e retornar o resultado para a escolha-produtos:
function listaProdutosporCategoria($conexao){
$produtos = array();
$resultado = mysqli_query($conexao, "select p.*, c.nome as categoria_nome, m.nome as marca_nome
from produtos p
inner join categorias c on(p.categoria_id = c.id)
inner join marcas m on(p.marca_id = m.id)
ON p.categoria_id = id ");
while($array = mysqli_fetch_assoc($resultado)) {
$produto = new Produto();
$produto->setId($array['id']);
$produto->setNome($array['nome']);
$produto->setPreco($array['preco']);
$produto->setReferencia($array['referencia']);
$produto->setDescricao($array['descricao']);
$produto->setMarca(new Marca());
$produto->getMarca()->setId($array['marca_id']);
$produto->getmarca()->setNome($array['marca_nome']);
$produto->setCategoria(new Categoria());
$produto->getCategoria()->setId($array['categoria_id']);
$produto->getCategoria()->setNome($array['categoria_nome']);
array_push($produtos, $produto);
}
return $produtos;
}