Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Jhow86

[Resolvido] Erro com função mysql_fetch_object()

Recommended Posts

Boa tarde pessoal,

 

Estou com dificuldades para trabalhar com a função: mysql_fetch_object()

Gostaria de saber pq ela funciona com consultas simpres como esta:

$sql  = mysql_query("SELECT * FROM tb_artigo ORDER BY artigo_id DESC");
$artigo = mysql_fetch_object($sql);

e não funciona em consultas um pouco mais incrementadas como esta:

$sql = mysql_query("SELECT * FROM tb_artigo LIMIT $inicio , $TAMANHO_PAGINA");
$artigo = mysql_fetch_object($sql);
OBS = as variaveis $inicio e $TAMANHO_PAGINA estam passando os valores corretamente. A $inicio varia do 0 ao infinito ja a $TAMANHO_PAGINA é uma constante com o valor = 2.

o erro apresentado na segunda consulta é esse:

 

<b>Warning</b>: mysql_fetch_object(): supplied argument is not a valid MySQL result resource in <b>C:\EasyPHP5.3.0\www\SITE_JHONATAN\index.php</b> on line <b>60 Vlw pela ajuda...</b>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Substitua este código:

 

$sql    = mysql_query("SELECT * FROM tb_artigo LIMIT $inicio , $TAMANHO_PAGINA"");

 

Por este:

 

$sql    = mysql_query("SELECT * FROM tb_artigo LIMIT $inicio , $TAMANHO_PAGINA") or die('Erro: ' . mysql_error());

 

 

e mostre o que foi impresso na tela.

 

 

This is it!

 

Vinicius Cainelli

Compartilhar este post


Link para o post
Compartilhar em outros sites

Apareceu a mesma mensagem:

Warning: mysql_fetch_object(): supplied argument is not a valid MySQL result resource in C:\EasyPHP5.3.0\www\SITE_JHONATAN\index.php on line 60

 

o engeraçado é que sempre tive dificuldade quando incrementava a consulta sql e a usava com o mysql_fetch_object(). ja tentei tudo que me veio a cabeça mas até agora nada

Compartilhar este post


Link para o post
Compartilhar em outros sites

opa,

 

o mysql_fetch_object não esta recebendo resultados isso deve estar ocorrendo por algum erro no teu sql... posta a estrutura da tabela para podermos ver aonde esta o erro.

 

 

Att.

Compartilhar este post


Link para o post
Compartilhar em outros sites

opa,

 

o mysql_fetch_object não esta recebendo resultados isso deve estar ocorrendo por algum erro no teu sql... posta a estrutura da tabela para podermos ver aonde esta o erro.

 

 

Att.

 

Ta aqui:

 

tb_artigo

artigo_id

artigo_datahora

artigo_titulo

artigo_artigo

artigo_tags

artigo_status

 

mas eu ja executei o select direto na base, substituindo os valores das variaveis exatamente como o sistema deve fazer. e o resultado vem certinho. não consigo entender pq a função da este erro :S

Compartilhar este post


Link para o post
Compartilhar em outros sites

possível que as variaveis não estejam com os valores corretos:

echo "SELECT * FROM tb_artigo LIMIT $inicio , $TAMANHO_PAGINA";
analise oque retornar

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tente colocar valores fixos para o LIMIT

 

$sql = mysql_query("SELECT * FROM tb_artigo LIMIT 0,2");
$artigo = mysql_fetch_object($sql);

At+

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá Quelipe como falei ja testei esses valores direto na base e o resultado que retorna é o esperado.

 

SELECT * FROM tb_artigo LIMIT 0,2

SELECT * FROM tb_artigo LIMIT 4,2

SELECT * FROM tb_artigo LIMIT 6,2

 

e assim vai...

 

Agora se eu retirar a condição LIMIT do comando SQL, o mysql_fetch_array funciona normalmente

 

ex: SELECT * FROM tb_artigo

 

e ai o que você acha?

 

Obs: trabalho perto do jornal de Brasilia rsrs Forum pequeno né ahahah

Compartilhar este post


Link para o post
Compartilhar em outros sites

Posso estar errado...

 

Mas pode ser que o seu MySQL instalado não suporte o LIMIT desta forma.

 

Mas você pode tentar:

 

$sql = mysql_query("SELECT * FROM tb_artigo LIMIT {$TAMANHO_PAGINA} OFFSET {$inicio}");
$artigo = mysql_fetch_object($sql);

 

 

Espero que seja isso!

 

 

This is it!

 

Vinicius Cainelli

Compartilhar este post


Link para o post
Compartilhar em outros sites

Você testou do jeito que te passei na aplicação???

 

At+

 

Amigo de acordo com o que você falou:

 

OBS = as variaveis $inicio e $TAMANHO_PAGINA estam passando os valores corretamente. A $inicio varia do 0 ao infinito ja a $TAMANHO_PAGINA é uma constante com o valor = 2.

 

Não funciona.

 

Primeiro: para declarar constante não pode ter o "$";

Segundo: Se você colocar como constante, no momento da consulta no sql vai entrar uma string.

 

Agora se você colocar como variáveis irá funcionar:

 

Ex:

$inicio = 0;
$TAMANHO_PAGINA = 2;

$sql    = mysql_query("SELECT * FROM tb_artigo LIMIT $inicio , $TAMANHO_PAGINA");
$artigo = mysql_fetch_object($sql);

Testa aí

 

At+

Compartilhar este post


Link para o post
Compartilhar em outros sites

Gente resolvi o problema.

 

reescrevi todo o codigo(~=200) e o erro não tornou a acontecer.

 

foi trabalhoso, não achei o erro mas resolvi.

 

Mesmo assim obrigado pela ajuda de vcs.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.