3
respostas

Ao salvar produto, a query esta sendo executada mais de uma vez.

Quando executo, além de ser inserido uma vez a query atual, é inserida mais duas vezes a anterior.

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

$conexao = mysqli_connect('localhost', 'root', '', 'loja');

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

if(mysqli_query($conexao,$query)){ ?>

Produto <?= $nome?>, <?= $preco?> adicionado com sucesso!

<?php } else { ?>

Produto não foi adicionado!

<?php $conexao = ''; $query = ''; } ?>

<?php include("rodape.php")?>

3 respostas

No meu arquivo, nao tem a penúltima linha. <?php $conexao = "; $query = ";}?>. Tenta sem isso hahaha

Vamos depurar isso aí:

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

<?php

$nome = $_GET["nome"]; $preco = $_GET["preco"]; $conexao = mysqli_connect('localhost', 'root', '', 'loja'); $query = "insert into produtos(nome, preco) values('{$nome}', {$preco})";

if(mysqli_query($conexao,$query)){ ?> Produto <?= $nome?>, <?= $preco?> adicionado com sucesso! <?php } else { ?> Produto não foi adicionado! <?php $conexao = '';$query = ''; } ?> <?php include("rodape.php")?>

Qual a finalidade dessas variáveis sendo esvaziadas caso o produto não seja adicionado? O PHP fecha automaticamente as conexões e destrói as variáveis em tempo de execução, eu acho (tbm sou iniciante), mas o erro não está exatamente aí. O problema está na linha "$query = "insert into produtos (nome,preco) values ('{$nome}','{$preco}')";" Você esqueceu as aspas simples .

Posta o código em cabecalho.php

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