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

Aula 4

$resultado = mysqli_query($conexao, "select * from produtos"); while($produto = mysqli_fetch_assoc($resultado)) { echo $produto['nome'] . " "; } ?>

Esta dando erro e nao consigo seguir o curso por conta disso: Notice: Undefined index: nome in C:\xampp\htdocs\loja\produto-lista.php on line 6

Conferi diversas vezes o código e ainda esta dando esse erro.

Aguardo resposta urgente para que eu possa seguir o curso

aconselho que faça igual em outros cursos de vcs mesmo que deixa o código final disponivel para download após correção .

8 respostas

Verifique se a coluna "nome" existe na tabela produto.

Existe ... tante que os produto-formulario.php funciona normalmente sem erros

Olá Leonardo . Posta o código inteiro de produto-lista.php pra gente dar uma olhada.

Quando postar o código coloca aqui entre crases como o exemplo abaixo:

Seu código

Assim o código fica formatado com quebra de linha pra gente ver.

Bom de imediato o que você pode fazer :

*Verifique se você incluiu conecta.php no início do código:

include('conecta.php');

  • O erro que você postou indica que $produto['nome'] é um array com valor do índice 'nome', porém não existe esse índice no array.

Sendo assim imprime o conteúdo do array , copia o resultado e cola aqui pra gente ver.

Você pode fazer isso digitando a seguinte linha no final do seu código PHP:

var_dump($produto);

aguardo retorno...

Olá Segue abaixo meu código do produto-lista.php

<?php include("cabecalho.php"); ?> <?php include("conecta.php"); ?> <?php $resultado = mysqli_query($conexao, "select * from produtos"); while($produto = mysqli_fetch_assoc($resultado)) { echo $produto['nome'] . "<br/>"; var_dump($produto); } ?> <?php include("rodape.php"); ?>

Assim ficou após inserir o var_dump depois do echo

Notice: Undefined index: nome in C:\xampp\htdocs\loja\produto-lista.php on line 6

array(3) { ["ID"]=> string(1) "1" ["NOME"]=> string(5) "Carro" ["PRECO"]=> string(8) "20000.00" } Notice: Undefined index: nome in C:\xampp\htdocs\loja\produto-lista.php on line 6

array(3) { ["ID"]=> string(1) "2" ["NOME"]=> string(11) "motocicleta" ["PRECO"]=> string(8) "10000.00" } Notice: Undefined index: nome in C:\xampp\htdocs\loja\produto-lista.php on line 6

array(3) { ["ID"]=> string(1) "3" ["NOME"]=> string(9) "bicicleta" ["PRECO"]=> string(7) "1000.00" } Notice: Undefined index: nome in C:\xampp\htdocs\loja\produto-lista.php on line 6

array(3) { ["ID"]=> string(1) "4" ["NOME"]=> string(5) "lapis" ["PRECO"]=> string(4) "1.00" } Notice: Undefined index: nome in C:\xampp\htdocs\loja\produto-lista.php on line 6

array(3) { ["ID"]=> string(1) "5" ["NOME"]=> string(5) "lapis" ["PRECO"]=> string(4) "2.00" } Notice: Undefined index: nome in C:\xampp\htdocs\loja\produto-lista.php on line 6

array(3) { ["ID"]=> string(1) "6" ["NOME"]=> string(9) "Chocolate" ["PRECO"]=> string(4) "3.00" } Notice: Undefined index: nome in C:\xampp\htdocs\loja\produto-lista.php on line 6

array(3) { ["ID"]=> string(1) "7" ["NOME"]=> string(4) "Moto" ["PRECO"]=> string(9) "100000.00" }

Sem o var_dump não mostra os dados do Array.

Grato pela ajuda!

solução!

Beleza Leonardo. Então cara, analisando o resultado do var_dump verificamos que os índices do array estão em letra maiúsculas: [ID] [NOME] [PRECO].

Ou seja na sua tabela mysql produtos, provavelmente os nomes dos campos estão em maiúsculo, e os índices retornados no array $produto são os mesmos que os nomes dos campos da tabela. Se eu não me engano o mysql é case sensitive.

Solução: Experimenta colocar o índice 'nome' em maiúsculo na linha 6.

Ex: echo $produto['NOME'] . "";

E NÃO echo $produto['nome'] . "";

Tenta aí e depois fala pra gente se deu certo. Senão a gente tenta outra coisa. Aguardo retorno ! ! !

Muito obrigado ... agora foi

O estanho é que quando no meu "adiciona-produto.php" não foi necessario informar ele em lestas maiúsculas e funcionou tranquilamente, por isso achei que não interferia ... mas fico grato pela ajuda.

Então eu precisaria ver o código pra entender o porque NÃO deu erro. Mas o importante é que já descobrimos a causa do erro.

Alguma pessoas tem esse costume de usar todos os comandos SQL com letras maiúsculas, não sei porque.

Mas precisamos ficar atento com isso, ainda muitos servidores para PHP são Linux, que também é case sensitive.

Outra dica é usar o var_dump , print_r,echo pra imprimir o conteúdo dessas variáveis e arrays. Principalmente quando envolve comandos SQL.

Ainda você pode pesquisar e adotar o uso de depuradores pra analisar o código. Para o PHP existe o XDebug, e outras ferramentas que usam o mesmo.

Só pra retomar, quando você for colar códigos no fórum, eu aconselho usar às três crases no início e no fim do código.

Assim o código não perde a formatação e as quebras de linhas, facilitando a visualização do código .

Ex:

´´´

Seu Código

´´´

Mas não faça como eu que usei acento. Você deve usar crases

`

Bom é isso.

Precisando é só chamar Abraços