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.
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...
$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.