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

Inclusão múltipla no banco

Estou fazendo a inserção, ela inclusive esta funcionando, porem esta adicionando 4 vezes no banco de dados, segue o codigo

<?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', 'root', 'loja');

    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') ?>
5 respostas

Oi Thiago, tudo bom?

Estranho mesmo... Seu código parece OK, nenhum problema evidente. Tenta colocar um var_dump nele pra ver quantas vezes está sendo executado. Algo como:

<?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', 'root', 'loja');
var_dump("enviando pro banco de dados");
    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') ?>

Assim, qnd a página carregar, você vai ver quantas vezes esse bloco de código foi chamado =)

Compartilha com a gente o resultado.

Abraço!

Saiu assim na tela

C:\wamp64\www\loja\adiciona-produto.php:15:string 'enviando pro banco de dados' (length=27)
Produto , adicionado com sucesso!

Tem como vc dar um var_dump na variável $query para a gente ver como está ficando a query construida ?

<?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', 'root', 'loja');
var_dump($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
    }
?>

Colocando no local onde você informou, deu variable undefined então joguei dentro do método

function inserir($conexao, $nome, $preco){
        $query = "INSERT INTO produtos (nome,preco) VALUES ( '{$nome}' , {$preco} )";
        $resultadoDaInsercao = mysqli_query($conexao, $query);
        var_dump($query);
        return $resultadoDaInsercao;

e a minha saída foi a seguinte

C:\wamp64\www\loja\adiciona-produto.php:7:string 'INSERT INTO produtos (nome,preco) VALUES ( 'teste5' , 1 )' (length=57)

E mesmo assim continua a inserção múltipla.

solução!

Então gente, estou usando o Google Chrome para fazer as atividades, e nele o meu phpmyadmin não está abrindo, então fui fazer o teste agora no Internet Explorer, e por acaso, só foi adicionado o meu produto uma vez, então o problema deve estar nesse fator do phpmyadmin não abrir no Chrome, irei dar uma pesquisada, pois ele (phpmyadmin) esta abrindo normalmente no Internet Explorer

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