Segue o erro apresentado:
Fatal error: Uncaught Error: Call to a member function getNome() on null in C:\xampp\htdocs\loja\Projeto-de-php\loja\produto-lista.php:20 Stack trace: #0 {main} thrown in C:\xampp\htdocs\loja\Projeto-de-php\loja\produto-lista.php on line 20
Segue os códigos: adiciona-produto.php, altera-produto.php, banco-categoria.php, banco-produto.php, produto-altera-formulario.php, produto-formulario-base.php, produto-formulario.php e produto-lista.php.
adiciona-produto.php:
<?php
require_once("cabecalho.php");
require_once("banco-produto.php");
require_once("logica-usuario.php");
require_once("class/Produto.php");
require_once("class/Categoria.php");
verificaUsuario();
$categoria = new Categoria();
$categoria->getId($_POST['categoria_id']);
$produto = new Produto();
$produto->getNome($_POST['nome']);
$produto->getPreco($_POST['preco']);
$produto->getDescricao($_POST['descricao']);
if(array_key_exists('usado', $_POST)) {
$produto->getUsado() = "true";
} else {
$produto->getUsado() = "false";
}
$produto->getCategoria = $categoria;
if(insereProduto($conexao, Produto $produto)) { ?>
<p class="text-success">O produto <?= $produto->getNome() ?>, <?= $produto->getPreco() ?> foi adicionado.</p>
<?php
} else {
$msg = mysqli_error($conexao);
?>
<p class="text-danger">O produto <?= $produto->getNome() ?> não foi adicionado: <?= $msg?></p>
<?php
}
?>
<?php include("rodape.php"); ?>
altera-produto.php
<?php
require_once("cabecalho.php");
require_once("banco-produto.php");
require_once("class/Produto.php");
require_once("class/Categoria.php");
$categoria = new Categoria();
$categoria->id = $_POST['categoria_id'];
$produto = new Produto();
$produto->getId($_POST['id']);
$produto->getNome($_POST['nome']);
$produto->getPreco($_POST['preco']);
$produto->getDescricao($_POST['descricao']);
$produto->getCategoria($categoria);
$produto->getCategoria()->getid($_POST["categoria_id"]);
$produto->getUsado($_POST["usado"]);
if(array_key_exists('usado', $_POST)) {
$produto->getUsado() = "true";
} else {
$produto->getUsado() = "false";
}
if(alteraProduto($conexao, $produto)) { ?>
<p class="text-success">O produto <?= $produto->nome ?>, <?= $produto->preco ?> foi alterado.</p>
<?php
} else {
$msg = mysqli_error($conexao);
?>
<p class="text-danger">O produto <?= $produto->nome ?> não foi alterado: <?= $msg?></p>
<?php
}
?>
<?php include("rodape.php"); ?>
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->getId($categoria_array['id']);
$categoria->getNome($categoria_array['nome']);
array_push($categorias, $categoria);
}
return $categorias;
}