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

Problema com avisos ao usuario - Aula 03 de PHP e MySQL

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

<?php

$nome = $_GET["nome"];
$preco = $_GET["preco"];
$conexao = mysqli_connect('localhost', 'root', '', 'loja');
//Execução da query

function insereProduto($conexao, $nome, $preco){
    $query = "insert into produtos(nome, preco) values ('{$nome}', {$preco})";
    //Conexão com o banco de dados
    //$conexao = mysqli_connect('ip do servidor', 'usuario', 'senha', 'nome do banco');
    $resultadoDaInsercao = mysqli_query($conexao, $query);
    return mysqli_connect('localhost', 'root', '', 'loja');

}

if(insereProduto($conexao, $nome, $preco)){ 
?>
    <p class="text-sucess">Produto <?= $nome ;?>, <?= $preco; ?> adicionado com sucesso!</p>
<?php
    }else{ 

    //Encontrar a mensagem de erro para o usuario
    $mensagem = mysqli_error($conexao);
?>
     <p class="text-danger">Produto <?= $nome ;?> não foi adicionado: <?= $mensagem ?></p>
<?php } ?>


<?php
//Fechar a conexão
//mysqli_close($conexao);
//A conexão é fechada quando termina o rodape, logo nao é necessario o comnado acima.
?>


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

Ola Rafael,

poderia explicar melhor a sua dúvida por favor ?

Att,

solução!

E aí Rafael tudo bem? mano observando seu código acho que o erro não está na exibição da mensagem de erro para o usuário, o erro está no return da função insereProduto no inicio do código você declarou as variáveis incluindo a variável $conexao = mysqli_connect('localhost', 'root', '', 'loja'); que é fundamental para o funcionamento do código mas dentro da função vc usa o return para retornar o msm valor da variável $conexao e o correto seria retornar o valor da variável $resultadoDaInsercao então sua função deve ficar assim:

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

ou dessa outra forma:

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

experimenta aí espero ter ajudado!

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software