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

Produto adicionado em duplicidade

Toda vez que eu adiciono um produto novo na tabela via formulário, este é adicionado em duplicidade, ou seja, são adicionados dois produtos idênticos (só com o ID diferente). Há algo errado com o código? Ou talvez com a conexão com o bando de dados? Segue o código do arquivo adiciona-produto.php:

<?php include("cabecalho.php"); ?>
<?php
    $nome = $_GET["nome"];
    $preco = $_GET["preco"];

    $query = "insert into produtos (nome, preco) values ('{$nome}', {$preco})";
    $conexao = mysqli_connect("localhost", "root", "", "Loja");
    mysqli_query($conexao, $query);
    if(mysqli_query($conexao, $query)) {
    ?>
    <p class="alert-success">Produto <?= $nome; ?>, <?= $preco; ?> adicionado com sucesso!</p>
    <?php
    } else {
    ?>
    <p class="alert-danger">O produto <? $nome; ?> não foi adicionado</p>
    <?php
    }    
?>


<?php include("rodape.php"); ?>
2 respostas
solução!

acredito que possa ser porque quando você faz o if ele executa mais uma vez. Retire a linha antes e deixe somente o if.

//mysqli_query($conexao, $query);

if(mysqli_query($conexao, $query))

outra opção é atribuir o retorno do insert em uma variável e ver se existe valor para a mesma (só não me lembro se retorna o registro incluído, ou se retorna true or false)

parecido com isso:

$teste = mysqli_query($conexao, $query);

if($teste){

É isso mesmo, função era chamada pela segunda vez dentro do If. Muito obrigado Carlos!