Autor Tópico: Duvida php  (Lida 1104 vezes)

Offline Goncalo_smc

  • Novato
  • Mensagens: 1
    • Ver Perfil
Duvida php
« em: 17 de Junho de 2008, 12:21:25 »
Boas eu estou fazendo uma loja de produtos com flash e php e sql..
O que acontece e que quando vai para listar os produtos no flash da me este erro em varias linhas
"Notice:  Undefined variable: i in C:\Programas\EasyPHP 2.0b1\www\loja.php on line 22"

O codigo php e este

Código: [Seleccione]
<?PHP
   $DBhost = "localhost";   // Database Server
   $DBuser = "root";            // Database User
   $DBpass = "";            // Database Pass
   $DBName = "loja";            // Database Name
   $table = "produtos";             // Database Table
   $numprodutos = 10;       // Number of Comments per page
   $DBConn = mysql_connect($DBhost,$DBuser);
   mysql_select_db($DBName, $DBConn);
$sql = "select * from produtos";
$allComments = mysql_query($sql, $DBConn);
$numallprodutos = mysql_num_rows($allComments);
$numfewComments = mysql_num_rows($fewComments);
print '&totalprodutos=' . $numallprodutos . '&';
print "<br>&entries=";
if($numallprodutos == 0) {
    print "No entries in the guestbook, as yet..";
} else {
    while ($array = mysql_fetch_array($allComments)) {
   $Nome = mysql_result($allComments,$i,'Nome');
   $Preco = mysql_result($allComments,$i,  'Preco');
   $Descricao = mysql_result($allComments,$i, 'Descricao');
   $Id = mysql_result($allComments,$i, 'id');
   print '<b>Nome: </b>' . $Nome . '<br><b>Preco: </b>' . $Preco . '<br><b>Descricao: </b>' . $Descricao . '<br><i>Id: ' . $Id . '</i><br><br>';
   $i++;
    }
}

?>

Alguem me pode ajudar? :-\

Offline gimbras

  • Emblema de Prata
  • ****
  • Mensagens: 1104
    • Ver Perfil
    • NoFuturo.com
Re: Duvida php
« Responder #1 em: 19 de Junho de 2008, 11:07:47 »
Bom, em primeiro lugar bem-vindo ao fórum.

Em segundo lugar um conselho, não convem colocar as variáveis de acesso à BD na mesma página do script. Opta por chamares um ficheiro de ligação à BD com um include, e coloca esse ficheiro numa pasta fora do acesso via http. Mas como estás a trabalhar localmente e em fase de construção isso n deve ser mto importante, por enquanto.

Dá-te esse erro, como deves saber pq n existe nenhuma definição da variável $i. As variáveis no PHP tem sempre de ser criadas antes de serem chamadas.

Nesse caso, como está a ser chamada a função mysql_result, o PHP está à espera de um número inteiro (integer) na posição onde está a variável $i.

Código: [Seleccione]
mysql_result  ( resource $result  , int $row  [, mixed $field  ] )
Esse inteiro seria correspondente ao número da linha da tabela em questão.

Eu não faço assim. É certo que não tens password, mas...

Código: [Seleccione]
$DBConn = mysql_connect  ($BDhost, $DBuser, $DBpass);
mysql_select_db($DBname, $BDConn);

... pode ser necessária mais tarde e assim fica já tudo pronto.

Explica aí o que queres fazer. Será mais fácil explicar como resolver isso.
Se é para listares todos os produtos há maneiras mais engraçadas de o fazer.

Ou então experimenta atribuir um valor de 1 à variável $i, antes de entrar no while. Se ela não tem valor nenhum (é null), não pode ser usada.

Cumps.
« Última modificação: 19 de Junho de 2008, 11:09:33 por gimbras »

 




Roleta das Anedotas - Abre noutra janela