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

Erro para adicionar produto

Pessoal estou fazendo o curso de PHP e MYSQL 1 - Fundamentos para criar um sistema web, estou acompanhando o vídeo e depois fazendo como o tutor faz no vídeo porém está dando um erro na hora de adicionar o produto, estava certo depois começou dar esse erro: (Produto camisa, não foi adicionado:Erreur de syntaxe pr�s de '})' � la ligne 1) segue o código:

<?php include("cabecalho.php");
 include("conecta.php");
 include("banco-produto.php");


$nome = $_GET['nome'];
$preco = $_GET['preco'];

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">Produto <?= $nome;?>, não foi adicionado:<?= $msg;?></p>
<?php
}
?>
<?php include("rodape.php")?>

Alguém sabe me dizer o que está acontecendo?

6 respostas

Qual editor está usando? No código não parece haver nenhum erro, dependendo do editor ele quebra com o caracter das aspas.

Eu estou usando o Notepad ++

O erro pode estar em algum dos arquivos importados também, por isso ele acusa erro na linha 1. Cole os códigos para darmos uma olhada também.

Adiciona-produto.php

<?php include("cabecalho.php");
 include("conecta.php");
 include("banco-produto.php");


$nome = $_GET['nome'];
$preco = $_GET['preco'];

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">Produto <?= $nome;?>, não foi adicionado:<?= $msg;?></p>
<?php
}
?>
<?php include("rodape.php")?>

banco-produto.php

<?php
function listaProdutos($conexao) {
    $produtos = array();
    $resultado = mysqli_query($conexao, "select * from produtos");
    while($produto = mysqli_fetch_assoc($resultado)){
        array_push($produtos, $produto);
    }
    return $produtos;

}

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

Olá Rafael,

provavelmente o erro está acontecendo na função insereProduto na hora de fazer o $query. Note que na sua query de insert você precisa pegar os parâmetros $nome e $preco para o values. Porém, para chamar a variável precisa do $, ou seja, ao invés de fazer '{nome}' e {preco} teria que ser '{$nome}'e {$preco}

Realmente é isso mesmo Lucas, muito obrigado :)

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