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

Erro no código ao modificar o "If"

Após fazer a mudança e tentar adicionar um produto, o servidor me retorna uma mensagem de erro dizendo que o produto não foi adicionado,porém ao procurar em meu banco de dados , o produto esta lá,

Meu código(adiciona-produto.php):

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

<?php
function insereProduto($conexao, $nome, $preco, $descricao) {
    $query = "insert into produtos (nome, preco, descricao) values ('{$nome}', {$preco}, '{$descricao}')";
    $resultadoDaInsercao = mysqli_query($conexao, $query);
}


$nome = $_POST["nome"];
$preco = $_POST["preco"];
$descricao = $_POST['descricao'];
$conexao = mysqli_connect('localhost', 'root', '', 'loja');


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 <?php $nome; ?> não foi adicionado: <?= $msg ?></p>
    <?php
}
?>

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

mysqli_error retorna algo?

E se você colocar um return true no final do método insereProduto?

Luhan

sua função deveria ter um return ok ??Algo do tipo

return $resultadoDaInsercao
solução!

Luhan, o problema esta no retorno da sua função, se você esta usando ela dentro de um if a função deve ter um retorno booleano, ou seja, true(verdadeira) ou false(falso), talvez para corrigir seu problema faça o retorno do resultado da query:

function insereProduto($conexao, $nome, $preco, $descricao) {
    $query = "insert into produtos (nome, preco, descricao) values ('{$nome}', {$preco}, '{$descricao}')";
    return mysqli_query($conexao, $query);
}

Espero ter ajudado