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

Erro de conversão

Não sei o que pode estar gerando o erro e warning conforme abaixo:

Notice: Undefined index: nome in /opt/lampp/htdocs/loja/produto-formulario.php on line 3

Notice: Undefined index: preco in /opt/lampp/htdocs/loja/produto-formulario.php on line 4

Catchable fatal error: Object of class mysqli could not be converted to string in /opt/lampp/htdocs/loja/produto-formulario.php on line 9

O código está abaixo: <?php include("cabecalho.php"); ?> <?php $nome = $_GET["nome"]; $preco = $_GET['preco']; $conexao = mysqli_connect("localhost", "ecom", "123");

function insereProduto($nome, $preco){ $query = "insert into produto (nome, preco) values ('{$nome}', {$preco})"; $resultadoDaInsercao = mysqli_query($conexao, $query);

return $resultadoDaInsercao; } ?>

Formulário de cadastro

Nome

Preço

<?php

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

if(insereProduto($conexao, $nome, $preco)) { ?>

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

<?php } else { ?>

O produto <? echo $nome; ?> não foi adicionado

<?php } mysqli_close($conexao);

?>

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

4 respostas
solução!

Olá, Jônatas! Quando for adicionar código, adicione-os entre 3 crases ( ` ), que seu código fica assim:

codigo

Enfim... Levando em conta que são dois arquivos diferentes, no segundo (Formulário de Cadastro) você realmente não tem as variáveis $nome e $preco. Na primeira linha você as usa na variável $query, mas elas não existem.

Já sua função insereProduto foi declarada para receber dois parâmetros, mas você está passando 3. O primeiro parâmetro que você está passando é a $conexão, que está indo para $nome dentro da execução dessa função, entendeu? Por isso o PHP está tentando converter para string.

Se não tiver ficado muito claro, fala que eu tento melhorar a explicação. rsrs

Espero ter ajudado.

FIcou um pouco dificil de entender, mas no final eu entendi rsrsrs

Na verdade eu misturei o adicionar-produto.php com o produto-formulario.php por isso estava dando os erros.

quando você diz para adicionar entre 3 crases é para dar o efeito abaixo né?

echo código;

Isso aí. Porque assim fica melhor pra gente ler o código.

Mas, então respondi sua dúvida? Conseguiu corrigir aí?

:-)

Consegui sim obrigado :)