Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Olá a todos, desde já muito obrigado pela atenção.
Em um dos meus scripts acontece um erro misterioso, pois ele só acontece as vezes e as vezes funciona. Não consegui encontrar erro no script ( Até porque se fosse erro do script não iria funcionar nunca ) e a hospedagem também diz que não é erro do servidor, já testei em três empresas de hospedagens e o erro continua acontecendo, mas só as vezes e na maioria funciona.
O erro é:
Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /home/....
Alguém sabe o que pode causar este erro?, Já digo que não é erro fetch array como ele acusa.
Olá Marcos, obrigado pela atenção.
O erro só acontece neste arquivo, é um arquivo que cria arquivos estáticos de páginas, produtos, categorias e etc...
O trecho do código que as vezes da erro é:
$trascategorias = mysql_query("SELECT * FROM categorias WHERE subde='0' ORDER BY nomecategoria ASC");
while ($troucategorias = mysql_fetch_array($trascategorias)){
$idcategoria=$troucategorias['idcategoria'];Boa tarde,
Como você está fazendo uma consulta, é comum os resultados nunca serem os mesmos. O que eu acredito que está havendo é que a consulta não encontra nenhum resultado no SELECT e retorna FALSE. Quando o valor FALSE cai no mysql_fetch_array ele gera esse erro dizendo que não é um resource (retorno de uma consulta com resultados).
No seu lugar eu colocaria uma condição verificando se $trascategorias é verdadeiro ou falso, para ter certeza de que o while irá executar sempre com um argumento válido:
$trascategorias = mysql_query("SELECT * FROM categorias WHERE subde='0' ORDER BY nomecategoria ASC");
if(!$trascategorias){
while ($troucategorias = mysql_fetch_array($trascategorias)){
$idcategoria=$troucategorias['idcategoria'];
...
}
}
Espero ter ajudado.
Up. Considere o post abaixo
A consulta retorna um array. Do modo que você está utilizando, só retornará o ultimo registro encontrado.
Testa alterando esse trecho postado por:
$trascategorias = mysql_query("SELECT * FROM categorias WHERE subde='0' ORDER BY nomecategoria ASC"); if(mysql_num_rows($trascategorias) > 0 ){ while ($troucategorias = mysql_fetch_array($trascategorias)){ $idcategoria[]=$troucategorias['idcategoria']; } }else{ echo 'nada para exibir'; } print_r($idcategoria);
Lembrando que mysql_* estão obsoletas.
Em outras partes do sistema que você consulta o banco de dados dá ese erro?
Poste a parte do código que apresenta o erro.