Seguindo os passos da aula e fazendo as atividades, consegui fazer com que funcionasse corretamente sem mensagens de erro. Mas ao adicionar um produto com a checkbok "Usado" marcada, vejo que no banco o produto é inserido como zero independente da checkbox, ou seja, não enviou a informação.
Já verifiquei nas ferramentas de desenvolvedor, conforme o professor mostra na aula, e lá aparece que o valor enviado foi true.
banco-produto.php
function insereProduto($conexao, $nome, $preco, $descricao, $categoria_id, $usado) {
$query = "insert into produtos(nome, preco, descricao, categoria_id, usado)
values ('{$nome}', {$preco}, '{$descricao}', '{$categoria_id}', '{$usado}')";
$resultadoDaInsercao = mysqli_query($conexao, $query);
return $resultadoDaInsercao;
}
produto-formulario.php
<tr>
<td></td>
<td><input type="checkbox" name="usado" value="true"> Usado</td>
</tr>
adiciona-produto.php
if(array_key_exists('usado', $_POST)) {
$usado = "true";
} else {
$usado = "false";
}
if(insereProduto($conexao, $nome, $preco, $descricao, $categoria_id, $usado)) { ?>
<p class="text-success">O produto <?=$nome; ?>, <?=$preco; ?> foi adicionado com sucesso!</p>
<?php } else {
$msg = mysqli_error($conexao);
?>
<p class="text-danger">O produto não foi adicionado: <?=$msg; ?></p>
<?php } ?>