Ao adicionar ou alterar um produto dá erro 500, o que pode estar acontecendo?
page: adiciona-produto
require_once("cabecalho.php");
require_once("banco-produto.php");
require_once("logica-usuario.php");
verificaUsuario();
$produto = new Produto;
$categoria = new Categoria;
$categoria->id = $_POST['categoria_id']
$produto->nome = $_POST['nome'];
$produto->preco = $_POST['preco'];
$produto->descricao = $_POST['descricao'];
$produto->categoria = $categoria;
#$produto->usado = $usado;
if(insereProduto($conexao, $produto)) { ?>
<p class="text-success">O produto <?= $produto->nome ?>, <?= $produto->preco ?> foi adicionado.</p>
<?php } else {
$msg = mysqli_error($conexao);
?>
<p class="text-danger">O produto <?= $produto->nome ?> não foi adicionado: <?= $msg ?></p>
<?php
}
?>
page: altera-produto
require_once("cabecalho.php");
require_once("banco-produto.php");
$id = $_POST['id'];
$nome = $_POST['nome'];
$preco = $_POST['preco'];
$descricao = $_POST['descricao'];
$categoria_id = $_POST['categoria_id'];
if(array_key_exists('usado', $_POST)) {
$usado = "true";
} else {
$usado = "false";
}
if(alteraProduto($conexao, $id, $nome, $preco, $descricao, $categoria_id, $usado)) { ?>
<p class="text-success">O produto <?= $nome ?>, <?= $preco ?> foi alterado.</p>
<?php } else {
$msg = mysqli_error($conexao);
?>
<p class="text-danger">O produto <?= $nome ?> não foi alterado: <?= $msg?></p>
<?php
}
page: banco-produto
require_once("class-produto.php");
require_once("class-categoria.php");
require_once("conecta.php");
function listaProdutos($conexao) {
$produtos = array();
$query = "select p.*,c.nome as categoria_nome from produtos as p join categorias as c on c.id=p.categoria_id";
$resultado = mysqli_query($conexao, $query);
while($produtoAtual = mysqli_fetch_assoc($resultado)) {
$produto = new Produto;
$produto = new Categoria;
$categoria->nome = $produtoAtual['categoria_nome'];
$produto->id = $produtoAtual['id'];
$produto->nome = $produtoAtual['nome'];
$produto->preco = $produtoAtual['preco'];
$produto->descricao = $produtoAtual['descricao'];
$produto->categoria = $categoria;
$produto->usado = $produtoAtual['usado'];
array_push($produtos, $produto);
}
return $produtos;
}
function insereProduto($conexao, $produto) {
if(array_key_exists('usado', $_POST)):
$produto->usado = "true";
else:
$produto->usado = "false";
endif;
$query = "insert into produtos (nome, preco, descricao, categoria_id, usado) values ('{$produto->nome}', {$produto->preco}, '{$produto->descricao}',
{$produto->categoria_id}, {$produto->usado})";
return mysqli_query($conexao, $query);
}
function alteraProduto($conexao, $id, $nome, $preco, $descricao, $categoria_id, $usado) {
$query = "update produtos set nome = '{$nome}', preco = {$preco}, descricao = '{$descricao}', categoria_id= {$categoria_id}, usado = {$usado} where id = '{$id}'";
return mysqli_query($conexao, $query);
}
function buscaProduto($conexao, $id) {
$query = "select * from produtos where id = {$id}";
$resultado = mysqli_query($conexao, $query);
return mysqli_fetch_assoc($resultado);
}
function removeProduto($conexao, $id) {
$query = "delete from produtos where id = {$id}";
return mysqli_query($conexao, $query);
}
page: banco-categoria
require_once("conecta.php");
function listaCategorias($conexao) {
$categorias = array();
$query = "select * from categorias";
$resultado = mysqli_query($conexao, $query);
while($categoria = mysqli_fetch_assoc($resultado)) {
array_push($categorias, $categoria);
}
return $categorias;
}
page: produto-lista
<?php
require_once("cabecalho.php");
require_once("banco-produto.php");
?>
<table class="table table-striped table-bordered">
<?php
$produtos = listaProdutos($conexao);
foreach($produtos as $produto) :
?>
<tr>
<td><?= $produto->nome ?></td>
<td><?= $produto->preco ?></td>
<td><?= substr($produto->descricao, 0, 40) ?></td>
<td><?= $produto->categoria->nome ?></td>
<td><a class="btn btn-primary" href="produto-altera-formulario.php?id=<?=$produto->id?>">alterar</a></td>
<td>
<form action="remove-produto.php" method="post">
<input type="hidden" name="id" value="<?=$produto->id?>">
<button class="btn btn-danger">remover</button>
</form>
</td>
</tr>
<?php
endforeach
?>
</table>