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

Inclusão no banco de dados

// Escrevo o código, ele diz que foi adicionado com sucesso, mas não entra na tabela. Não entendi qual foi o problema, será que foi na configuração do XAMPP?

<?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})";

        mysqli_query ($conexao, $query);

        mysqli_close ($conexao);
    ?>

    <p class = "alert-success"> Produto <?= $nome;?>, <?= $preco;?> adicionado com sucesso! </p>

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

Oi Ighor, tudo bem? Ele não entra na tabela que lista os produtos ou não entra na tabela do banco de dados?

Eu acessei o "http://localhost/phpmyadmin/", criei a tabela e inclui alguns itens, como manda na vídeo aula. Quando fui tentar fazer pelo código, não consegui. Ele mostra a mensagem de sucesso, falando que adicionou mas quando eu vou olhar a tabela, só tem os itens que eu incluí direto pelo sql.

Quando eu dou 2 cliques no arquivo "produto-formulario.php", ele abre no chrome com o endereço da pasta que ele está no meu computador (file:///C:/wamp64/www/loja/produto-formulario.php) e não funciona, abre com erro. Quando eu troco a url e digito "http://localhost/loja/produto-formulario.php", ele abre certinho, mas continua não acessando o banco de dados. To achando que tem algo errado na configuração do Wamp.

Você não consegue abrir os arquivos clicando direto Ighor por que o PHP precisa interpretar primeiro, por isso você precisa do WAMP.

Se fosse alguma configuração do WAMP, provavelmente você não conseguiria nem executar o SQL talvez. Cola o código do seu produto-formulario.php aqui por favor?

Tente fazer a seguinte alteração para facilitar na identificação do problema:

$nome = "";
$preco = 0;
if (isset($_GET['nome'])){
    $nome = $_GET['nome'];
}
if (isset($_GET['preco'])){
    $preco = $_GET['preco'];
}

$conexao = mysqli_connect('localhost', 'root', '', 'loja') or die("Houve um problema durante a conexao " . mysqli_error($con));

$query = "insert into produtos (nome, preco) values ('{$nome}', {$preco})";
echo ($query); //Para conferir se os valores estão sendo recebidos.
mysqli_query ($conexao, $query);

mysqli_close ($conexao);

"adiciona-produto"

$nome = "";
        $preco = 0;

        if (isset($_GET['nome'])){
            $nome = $_GET['nome'];
        }

        if (isset($_GET['preco'])){
            $preco = $_GET['preco'];
        }

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

        mysqli_query ($conexao, $query);

        mysqli_close ($conexao);

"produto-formulario"

<h1> Formulario de produto </h1>

<form action = "adiciona-produto.php">
Nome: <input type = "text" name = "nome"/> <br/>
Preco: <input type = "number    " name = "preco"/> <br/>

<input type = "submit" name = "Cadastrar"/>
</form>

Fiz a alteração proposta, mas ainda não acessa o banco de dados. Aparece que foi adicionado com sucesso, o que eu digitei aparece na url, mas não aparece no banco de dados.

Ighor, será que você poderia zipar seu projeto e compartilhar comigo por algum lugar? queria ver o problema de perto, por que seu código parece estar certo.

Ighor, confere no phpMyAdmin se o nome do banco é "loja" e se o nome da tabela é "produtos", no plural. Já sofri muito com este tipo de problema de não gravar os dados do formulário e o problema era nome errado do banco ou da tabela.

Como te enviaria Wanderson? Me passa seu e-mail que eu te envio.

Junior, eu já conferi lá no phpMyAdmin, o nome do banco e da tabela estão certos.

envia no wanderson.sabino@alura.com.br

Bom dia prezados. Estou tendo o mesmo problema, e meu código está igual ao do Ighor. Já possuem alguma solução?

Fala Fabio, ainda não conseguimos solucionar não... Mandei meu projeto pro Wanderson pra ele dar uma olhada direito em todos arquivos.

Olá Ighor, Eu executei o código que você colocou aqui e funcionou normalmente. Acredito ser algum detalhe de configuração do wamp ou especificamente no seu banco de dados. Talvez, se um campo do seu banco de dados foi definido como algum tipo (decimal qual era pra ser varchar, por exemplo) diferente do proposto aqui, ele não irá conseguir adicionar.

Você poderia me passar as linhas de criar a tabela e as de inserções que você escreveu direto no banco para eu dar uma olhada?

Enquanto isso, sugiro você ir seguindo as aulas porque logo o insturtor ensina a criar funções e ver o exatamente o erro que está dando. (no final do video da aula 3 https://cursos.alura.com.br/course/php-mysql-e-fundamentos-da-web/task/4037)

Fábio, sugiro dar uma olhada na dica do Júnior Gonçalves. "confere no phpMyAdmin se o nome do banco é "loja" e se o nome da tabela é "produtos", no plural"

quanto as informações do banco já havia checado, conforme orientação do Júnior, estão todas corretas. Vou dar prosseguimento ao curso.

Fábio e Ighor, vocês poderiam verificar se não é isso que o Lucas comentou acima?

Lucas, vou dar prosseguimento as aulas então. As linhas que usei pra criar a tabela e pra fazer as primeiras inserções foram iguais as mostradas na vídeo aula. Eu acredito que o problema seja alguma configuração no phpMyAdmin.

solução!

Consegui... Como normalmente o problema é uma coisa pequena, dessa vez não foi diferente. Eu tinha instalado o XAMP e o WAMP no meu computador. Na hora de salvar, estava salva dentro do XAMP, que eu estava usando na primeira aula porque o WAMP não estava funcionando. Quando resolvi o problema no WAMP, copiei a pasta "loja" pra pasta do WAMP e comecei a executar por lá, mas no NOTEPAD++ ainda estava salvando dentro do XAMP. Alterei o caminho e agora insere direitinho! Obrigado pela atenção e desculpa pela confusão!!!

Valeu mesmo!

Legal Ighor!

Que bom que conseguiu.

O bom é que deu pra você perceber que tipo de alternativas costumamos pensar quando estamos tentando resolver problemas (:

Desde sintaxe, a configuração das tecnologias que usamos. Espero que o Fábio Porto consiga também!

Abraços

Prezados, o erro era similar ao do Igor. Reinstalei o xampp em outra pasta e só percebi esse detalhe depois que o Ighor comentou.

Tudo funcionando.

Vlw

Legal! Vou marcar o post do Ighor como solução, então!

Abraços