Pessoal, eu tentei fazer a função listarCategoria() orientado a objeto, porém não é exibido nenhuma opção no campo selected, fica em branco. E isso acontece tanto no formulário para adicionar um produto, como no formulario para editar.
Se alguém puder me auxiliar ficarei bastante grato. O código segue abaixo:
banco-categoria.php
<?php
require_once("conecta.php");
require_once("class/categoria.php");
function listarCategoria($conexao){
$categorias = array();
$categoria = new Categoria();
$query = "select * from categoria";
$resultado = mysqli_query($conexao, $query);
while($categoria_banco = mysqli_fetch_assoc($resultado)){
$categoria->id = $categoria_banco['id'];
$categoria->nome = $categoria_banco['nome'];
array_push($categorias, $categoria);
}
return $categorias;
}
formulario-base.php
<tr>
<td>Nome</td>
<td><input type="text" name="nome" class="form-control" value="<?=$produto->nome?>"/></td>
</tr>
<tr>
<td>Preço</td>
<td><input type="number" name="preco" class="form-control" value="<?=$produto->preco?>"/></td>
</tr>
<tr>
<td>Descrição</td>
<td><textarea name="descricao" class="form-control"><?=$produto->descricao?></textarea></td>
</tr>
<tr>
<td>Usado</td>
<td><input type="checkbox" name="usado" <?= $produto->usado ?> value="false"></td>
</tr>
<tr>
<td>Categoria</td>
<td>
<select name="categoria_id">
<?php
$categorias = listaCategorias($conexao);
foreach($categorias as $categoria) : ?>
<option value="<?=$categoria->id?>">
<?=$categoria->nome?>
</option>
<?php endforeach ?>
</select>
</td>
</tr>
formulario-produto.php
<?php require_once("cabecalho.php");
require_once("banco-categoria.php");
require_once("logica-usuario.php");
verificaUsuario();
$produto = array("nome" => "" , "preco" => "" , "descricao" => "" , "categoria_id" => "1", $usado = "");
//$usado = "";
$categorias = listarCategoria($conexao);
?>
<h1>Adiciona Produto</h1>
<html>
<form action="adiciona-produto.php" method="post">
<table class="table">
<?php include("formulario-base.php")?>
<tr>
<td><input type="submit" value="Cadastrar"class="btn btn-primary"/></td>
</tr>
</table>
</form>
</html>
<?php include("rodape.php") ?>
Formulario-editar-produto.php
<?php require_once("cabecalho.php");
require_once("banco-categoria.php");
require_once("banco-produto.php");
require_once("class/produto.php");
require_once("class/categoria.php");
$produto = new Produto();
$produto->id= $_GET['id'];
$produtos = buscarProduto($conexao, $produto);
$categorias = listarCategoria($conexao);
$produto->usado = $usado ? "checked='checked'" : "";
?>
<h1>Adiciona Produto</h1>
<html>
<form action="alterar-produto.php" method="post">
<input type="hidden" name="id" value="<?=$produto->id?>">
<table class="table">
<?php include("formulario-base.php")?>
<tr>
<td><input type="submit" value="Alterar" class="btn btn-primary"/></td>
</tr>
</table>
</form>
</html>
<?php include("rodape.php") ?>