Depois que fiz a alteração direto pra classe Produto.php, a listagem (produtoLista.php) parou de funcionar, exibindo apenas o nome e o preço do primeiro item da lista.
produtoLista.php
<?php require_once("cabecalho.php");
require_once("bancoProduto.php");
require_once("class/Produto.php");
session_start();
header("Content-type: text/html; charset=utf-8");
$produto = new Produto(); ?>
<table class="table table-striped table-borded">
<tr>
<th>Nome</th>
<th>Preço</th>
<th>Descrição</th>
<th>Categoria</th>
</tr>
<?php $produtos = listaProdutos($conexao);
foreach($produtos as $produto){ ?>
<tr>
<td class="warning"><?= $produto->nome ?></td>
<td><?= $produto->preco ?></td>
<td><?= substr($produto->desciricao, 0,40) ?></td>
<td><?= $produto->categoria_nome ?></td>
<td>
<a href="altera.php?id=<?= $produto['id']?>" class="btn btn-primary">Alterar</a>
</td>
<td>
<a href="removeProduto.php?id=<?= $produto['id'] ?>" class="btn btn-danger">Remover</a>
</td>
<td>
<a href="copiaProduto.php?id=<?= $produto['id'] ?>" class="btn btn-danger">Copia</a>
</td>
</tr>
<?php
}
?>
</table>
<?php include ("rodape.php"); ?>
Lógica da "listaProdutos.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");
var_dump($resultado);
while($produto_array = mysqli_fetch_assoc($resultado)){
$produto = new Produto();
$produto->nome = $produto_array['nome'];
$produto->preco = $produto_array['preco'];
$produto->descricao = $produto_array['descricao'];
$produto->categoria_id = $produto_array['categoria_id'];
$produto->usado = $produto_array['usado'];
array_push($produtos, $produto);
// while($produto = mysqli_fetch_assoc($resultado)) {
// array_push($produtos, $produto);
// }
}
return $produtos;
}