Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

Dúvidas a respeito do exercício

Olá,

Estou com algumas duúvidas relacionadas ao exercicio:

Por que não fecho a tag no checkbox?

Usado

Estou levando o erro abaixo também:

insert into produto (nome, preco, descricao, categoria_id, usado) values ('conjunto de lapis de cor', 300, 'Conjunto de lapis de cor de 64 cores faber castel', 2, false)

O produto conjunto de lapis de cor não foi adicionado:

Porém no banco de dados ele é adicionado:

Produto-formulário

Usado

Categoria <?php foreach($categorias as $categoria) : ?> <?=$categoria['nome']?> <?php endforeach ?>

Adiciona produto

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

$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(insereProduto($conexao,$nome,$preco,$descricao,$categoria_id, $usado)) { ?>

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

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

O produto <? echo $nome; ?> não foi adicionado: <?= $msg ?>

<?php } mysqli_close($conexao);

?>

<?php include("rodape.php"); ?>

Banco produto

<?php function listaProdutos($conexao) { $produtos = array(); $resultado = mysqli_query($conexao, "select p.*, c.nome as categoria_nome from produto as p join categorias as c on p.categoria_id = c.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 produto (nome, preco, descricao, categoria_id, usado) values ('{$nome}', {$preco}, '{$descricao}', {$categoria_id}, {$usado})"; echo $query; $resultadoDaInsercao = mysqli_query($conexao, $query); }

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

}

2 respostas
solução!

Se está gravando no campo, o problema é o retorno da função de inserir, como não está retornando nada, na hora de fazer o IF para conferir se gravou acaba caindo na mensagem de não gravou

Tente fazer isso:

 function insereProduto($conexao, $nome, $preco, $descricao, $categoria_id, $usado) { 

$query = "insert into produto (nome, preco, descricao, categoria_id, usado) values ('{$nome}', {$preco}, '{$descricao}', {$categoria_id}, {$usado})"; 
echo $query;  //Apenas para conferir se o INSERT montou corretamente!
$resultadoDaInsercao = mysqli_query($conexao, $query); 
return $resultadoDaInsercao;
}

Estranho eu fiz isso ai voltou a funcionar corretamente, de toda forma valeu :D