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

Produto é adicionado ao banco, mas msg diz o contrário.

Prezados(as),

Ao cadastrar um produto no banco a seguinte mensagem retorna na tela: "O produto não foi adicionado:". Porém ao ir na página Produtos, o mesmo consta cadastrado. Nao sei por qual motivo meus IF não esta funcionando corretamente... Poderiam me ajudar ?

<?php
if(insereProduto($conexao, $nome, $preco, $descricao)) {
?>
<p class="alert-success">Produto <?= $nome; ?>, <?= $preco; ?> adicionado com sucesso!</p>
<?php
} else {
    $msg = mysqli_error($conexao);
?>
<p class="alert-danger">O produto <? = $nome; ?> não foi adicionado: <?= $msg ?></p>
<?php
}
?>
function insereProduto($conexao, $nome, $preco, $descricao) {
    $query = "insert into produtos (nome, preco, descricao) values ('{$nome}', {$preco}, '{$descricao}')";
    $resultadoDaInsercao = mysqli_query($conexao, $query);
}

Desde já, agradeço pela atenção.

4 respostas
solução!

é porque faltou vc dar o return na função, que nem explicado na documentação => https://secure.php.net/manual/pt_BR/functions.returning-values.php

Funcionou, muito obrigado.

Mas poderia me explicar como esse return $resultadoDaInsercao atua no IF ?

Eu não sou um especialista em php, mas acho que qualquer retorno com valor vai ser considerado true. Deve ter algumas exceções, como números negativos devem virar false e tal.

Entendi, obrigado Alberto.

Sucesso pra nós, abraço.