E aí pessoal estou com dúvida neste tópico, aparece o seguinte erro: Não está aparecendo o nome, descrição, categoria e usado.
Segue códigos: Produto.php
<?php
class Produto {
private $id;
private $nome;
private $preco;
private $descricao;
private $categoria_id;
private $usado;
//get's e set's para preco
public function valorComDesconto($valor= 0.1) {
if($valor<=0.5 && $valor>0){
$this->setPreco($this->preco -= $this->preco *$valor);
}
return $this->preco;
}
public function setPreco($preco) {
if($preco>0) {
$this->preco = $preco;
}
}
public function getPreco(){
return $this->preco;
}
//get's e set's para id
public function setId(){
$this->id = $id;
}
public function getId(){
return $this->id;
}
//get's e set's para nome
public function setNome(){
$this->nome = $nome;
}
public function getNome(){
return $this->nome;
}
//get's e set's para descricao
public function setDescricao(){
$this->descricao = $descricao;
}
public function getDescricao(){
return $this->descricao;
}
//get's e set's para categoria_id
public function setCategoria(){
$this->categoria_id = $categoria_id;
}
public function getCategoria(){
return $this->categoria_id;
}
//get's e set's para usado
public function setUsado(){
$this->usado = $usado;
}
public function getUsado(){
return $this->usado;
}
}
?>
Banco Produto
<?php
require_once ("conecta.php");
require_once("class/Produto.php");
require_once("class/Categoria.php");
function listaProdutos($conexao) {
$produtos = array();
$resultado = mysqli_query($conexao, "select p.*,c.nome as categoria_nome from produtos as p join categorias as c on c.id=p.categoria_id");
while ($produto_atual = mysqli_fetch_assoc($resultado)) {
$produto = new Produto;
$categoria = new Categoria;
$categoria->nome = $produto_atual['categoria_nome'];
$produto->setId($produto_atual['id']);
$produto->setNome($produto_atual['nome']);
$produto->setPreco($produto_atual['preco']);
$produto->setDescricao($produto_atual['descricao']);
$produto->setCategoria($categoria);
$produto->setUsado($produto_atual['usado']);
array_push($produtos, $produto);
}
return $produtos;
}
function insereProduto ($conexao, Produto $produto) {
$nome=mysqli_real_escape_string($conexao, $produto->nome);
$preco=mysqli_real_escape_string($conexao, $produto->GetPreco());
$descricao=mysqli_real_escape_string($conexao, $produto->descricao);
$query ="insert into produtos (nome, preco, descricao, categoria_id, usado)
values ('{$produto->nome}', {$produto->getPreco()}, '{$produto->descricao}', '{$produto->categoria->id}', '{$produto->usado}')";
return mysqli_query ($conexao, $query);
}
function buscaProduto($conexao, $produto) {
$query = "select * from produtos where id = {$produto->setId()}";
$resultado = mysqli_query($conexao, $query);
return mysqli_fetch_assoc($resultado);
}
Produto lista:
<?php require_once ("cabecalho.php");
require_once ("banco-produto.php");
require_once ("logica-usuario.php");
require_once("class/Produto.php");
verificaUsuario();
?>
<table class='table table-hover table-bordered'>
<thead>
<tr>
<th>Nome do produto</th>
<th>Preço</th>
<th>Preço com Desconto</th>
<th>Descrição</th>
<th>Categoria</th>
<th>Usado</th>
<th>Funções</th>
</tr>
</thead>
<tbody>
<?php
$produtos = listaProdutos($conexao);
foreach ($produtos as $produto) :
?>
<tr>
<td><?=$produto->getNome()?></td>
<td>R$ <?=$produto->getPreco()?></td>
<td>R$ <?=$produto->valorComDesconto(0.5)?></td>
<td><?= substr($produto->getDescricao(), 0, 20)?></td>
<td><?=$produto->getCategoria()?></td>
<?php
$usado = $produto->getUsado() ? 'Sim' : "Não";
?>
<td><?=$usado?></td>
<td>
<form action="remove-produto.php" method="post">
<input type="hidden" name="id" value="<?=$produto->getId()?>">
<button class="btn btn-danger">Remover</button>
</form>
<form action="produto-altera-formulario.php" method="post">
<input type="hidden" name="id" value="<?=$produto->getId()?>">
<button class="btn btn-primary">Editar</button>
</form>
</td>
</tr>
</tbody>
<?php
endforeach
?>
</table>
<?php require_once ("rodape.php")?>
Alguém sabe me explicar o que está acontecendo?