Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

AULA DE PHP+MYSQL I = CHECKBOX NAO PEGA

CODIGO produto-formulario LOGO A BAIXO.

<?php include("cabecalho.php"); include("conecta.php"); include("banco-categoria.php");

$categorias = listaCategorias($conexao);

?>

Formulario de produto

Nome:
Preço:
Descrição:
Usado
Categoria <?php foreach($categorias as $categoria) : ?>
<?=$categoria['nome']?> <?php endforeach ?> <?php include("rodabe.php") ?>

CODIGO adiciona-produto LOGO A BAIXO.

<?php include("cabecalho.php") ?> <?php include("conecta.php") ?> <?php include("banco-produto.php"); ?> <?php

$nome = $_POST['nome']; $preco = $_POST['preco']; $descricao = $_POST['descricao']; $categoria_id = $_POST['categoria_id']; $usado = $_POST['usado'];

if(insereProduto($conexao, $nome, $preco, $descricao, $categoria_id, $usado)){ ?>

Produto <?php echo $nome; ?>, <?php echo $preco; ?> adicionado com sucesso!

<?php }else{ $msg = mysqli_error($conexao); ?>

O produto <?php echo $nome; ?>, <?php echo $preco; ?> nao foi adicionado: <?= $msg?>

<?php} mysqli_close($conexao);?>

<?php include("rodabe.php") ?>

CODIGO banco-produto LOGO A BAIXO.

<?php function listaProdutos($conexao) { $produtos = array(); $resultado = mysqli_query($conexao, "select p.*,c.nome as categoria_nome from produtos as p join categorias as c on c.id=p.categoria_id"); while($produto = mysqli_fetch_assoc($resultado)) { array_push($produtos, $produto); } return $produtos; }

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}')"; return mysqli_query($conexao, $query); }

function removeProduto($conexao, $id){ $query = "delete from produtos where id = {$id}"; return mysqli_query($conexao, $query); }

?>

1 resposta
solução!

Altere

$usado = $_POST['usado'] ;

Para

$usado = isset($_POST['usado']) ? ($_POST['usado'] : 0 ;

O checkbox só carrega o valor se for clicado. O isset testa se a variável existe. Caso exista atribui o valor, caso contrário atribui zero.