Olá amigos.
Após as mudanças implementadas nessa aula, a lista de categorias do dropdown não aparece. Já tentei encontrar o erro, inclusive comparando com o projeto pronto fornecido por vocês, mas não encontrei ainda.
Segue o código dos arquivos produto-formulario.php, produto-formulario-base.php e banco-categoria.php para análise de vocês.
Desde já, muito grato pela ajuda.
produto-formulario.php
<?php
require_once("cabecalho.php");
require_once("banco-categoria.php");
require_once("logica-usuario.php");
require_once("class/Produto.php");
require_once("class/Categoria.php");
verificaUsuario();
$categoria = new Categoria();
$categoria->setId(1);
$produto = new Produto();
$produto->setCategoria($categoria);
$categorias = listaCategorias($conexao);
?>
<h1>Formulário de Cadastro</h1>
<form action="adiciona-produto.php" method="post">
<table class="table">
<?php require_once("produto-formulario-base.php"); ?>
<tr>
<td colspan="2"><input class="btn btn-primary" type="submit" value="Cadastrar" /></td>
</tr>
</table>
</form>
<?php require_once("rodape.php")?>
produto-formulario-base.php
<tr>
<td>Nome:</td>
<td><input class="form-control" type="text" name="nome" value="<?=$produto->getNome()?>"/></td>
</tr>
<tr>
<td>Preço:</td>
<td><input class="form-control" type="number" name="preco" value="<?=$produto->getPreco()?>" /></td>
</tr>
<tr>
<td>Descrição:</td>
<td><textarea name="descricao" class="form-control"><?=$produto->getDescricao()?></textarea></td>
</tr>
<tr>
<td></td>
<td>
<input type="checkbox" name="usado" <?=$produto->isUsado()?> value="true"/> Usado
</td>
</tr>
<tr>
<td>Categoria</td>
<td>
<select name="categoria_id" class="form-control">
<?php
foreach($categorias as $categoria) :
$essaEhACategoria = $produto->getCategoria()->getId() == $categoria->getId();
$selecao = $essaEhACategoria ? "selected='selected'" : "";
?>
<option value="<?=$categoria->getId()?>" <?=$selecao?>><?=$categoria->getNome()?>
</option>
<?php endforeach ?>
</select>
</td>
</tr>
banco-categoria.php
<?php
require_once("conecta.php");
require_once("class/Categoria.php");
function listaCategorias($conexao) {
$categorias = array();
$query = "select * from categorias";
$resultado = mysqli_query($conexao, $query);
while($categoria_array = mysqli_fetch_assoc($resultado)) {
$categoria = new Categoria();
$categoria->setId($categoria_array['id']);
$categoria->setNome($categoria_array['nome']);
array_push($categorias, $categoria);
}
return $categorias;
}