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

Nome de produto e preço não aparecem

Pessoal, o nome e preço do produto não aparece na mensagem de sucesso ao cadastral o produto, nem a mensagem de erro. Abaixo um trecho docódigo:

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

<?php

function insereProduto($conexao, $nome, $preco) {

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

}

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


if(insereProduto($conexao, $nome, $preco)) { ?>
    <p class="text-success">Produto <?= $nome ?>, <?= $preco ?> adicionado com sucesso!</p>
<?php } else { 
    $msg = mysqli_error($conexao);
?>
    <p class="text-danger">O produto <?= $nome ?> não foi adicionado: <?= msg ?></p>
<?php

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

Rodrigo, tudo bem? Cola aqui o código do formulário pra gente dá uma olhada?

Olá Wanderson, tudo bem!

Segue o código:

<?php include("cabecalho.php");?>
    <h1>Formulario de produto</h1>
<form action = "adiciona-produto.php">
<table class = "table">
<tr>
<td> Nome </td>
<td><input class="form-control" name="nome"></td>
</tr>

<tr>
<td>Preco</td>
<td><input class="form-control" name="preco"></td>
</tr>

<tr>
<td>
<button class="btn btn-primary" type="submit">Cadastrar</button>
</td>
</tr>

</table>
</form>
<?php include("rodape.php");?>

Oi Rodrigo, testei seu código aqui e não tive problemas. Olhando seu código ele também não parece ter problemas. Corrigi só a questão da variável msg que você esqueceu de usar o cifrão na hora de imprimir:

<p class="text-danger">O produto <?= $nome ?> não foi adicionado: <?= msg ?></p>

Pra ficar assim:

<p class="text-danger">O produto <?= $nome ?> não foi adicionado: <?= $msg ?></p>

Mas isso não deveria ser problema. Você olhou o banco? Os produtos estão sendo adicionados?

solução!

Boa tarde Rodrigo, um dos problemas pode ser que seu PHP não tenha o modulo "short_open_tag" ativado...

Tente usar "<?php echo" ao invés de "<?=" e veja se funciona...

Se funcionar e, se você tem desejo de escrever dessa maneira (com "<?=" ), dê uma procurada no google como faz para ativar esse modulo no PHP (short_open_tag), é simples e fácil!

Espero que tenha ajudado, grande abraço!

Obrigado Wanderson e Júlio! Júlio, de fato dessa forma funcionou, vou pesquisar sobre esse módulo short_open_tag!

Novamente, obrigado pelo apoio! Grande Abraço!