Jump to content
N3lson

[Resolvido] Erro no log mas apresenta resultados

Recommended Posts

N3lson

Boas no ficheiro de error_log de um projecto tenho este erro

PHP Warning: mysqli_result::fetch_object() [<a href='mysqli-result.fetch-object'>mysqli-result.fetch-object</a>]: Couldn't fetch mysqli_result in ****************.php on line 88

Na linha 88 tenho isto

$id = isset($_GET['id']) ? (intval($_GET['id'])) : false;

if(!$id){echo '<center><h2>ERRO: NÃO SELECIONASTE UMA NOTÍCIA</h2>';}

$quuery = "SELECT * FROM noticias WHERE id={$id}";

$news = $conexao->query($quuery);

while($r = $news->fetch_object()) // linha 88
 {
 echo "<h3><span>".$r->titulo."</span></h3><br>";

Embora informe desse erro, é apresentado o resultado da query perfeitamente no ecrã.


You can't do it, kid. But don't worry, my boy. You're not the only one. No one else can do it.

Share this post


Link to post
Share on other sites
brunoais

Que mais tens dentro desse while?


"[Os jovens da actual geração]não lêem porque não envolve um telecomando que dê para mirar e atirar, não falam porque a trapalhice é rainha e o calão é rei" autor: thoga31

Life is a genetically transmitted disease, induced by sex, with death rate of 100%.

Share this post


Link to post
Share on other sites
N3lson

Tenho o restante do fetch


	   echo '<img src="./images/noticias/'.$r->imagem.'" alt="***" class="newsimg"/>
	   <p>'.nl2br($r->texto).'</p>';
}
$news->free_result();

Edited by N3lson

You can't do it, kid. But don't worry, my boy. You're not the only one. No one else can do it.

Share this post


Link to post
Share on other sites
bioshock

Quer-me parecer que tens mais alguma coisa.

<a href='mysqli-result.fetch-object'>mysqli-result.fetch-object</a>

Onde é que paira o <a href> ?

Share this post


Link to post
Share on other sites
N3lson

Pois tb pensei isso mas acontece que me abre o que pretendo.

Por isso a minha questão

$id = isset($_GET['id']) ? (intval($_GET['id'])) : false;

if(!$id){echo '<center><h2>ERRO: NÃO SELECIONASTE UMA NOTÍCIA</h2>';}

$quuery = "SELECT * FROM noticias WHERE id={$id}";

$news = $conexao->query($quuery);

while($r = $news->fetch_object())
 {
 echo '<h3><span>'.$r->titulo.'</span></h3><br>
   <img src="./images/noticias/'.$r->imagem.'" alt="***" class="newsimg2"/>
   <p>'.nl2br($r->texto).'</p>';

 //IMAGENS DA NOTICIA
  if ((!empty($r->img4))){
	  echo '<p><u>FOTOS RELACIONADAS</u></p>
	  <a href="/images/noticias/'.$r->img1.'" rel="prettyPhoto['.$r->fgal.']"><img src="/images/noticias/'.$r->img1.'" width="120" height="60"/></a>
	      
	  <a href="/images/noticias/'.$r->img2.'" rel="prettyPhoto['.$r->fgal.']"><img src="/images/noticias/'.$r->img2.'" width="120" height="60"/></a>
	    ";
	  <a href="/images/noticias/'.$r->img3.'" rel="prettyPhoto['.$r->fgal.']"><img src="/images/noticias/'.$r->img3.'" width="120" height="60"/></a>
	    ";
	  <a href="/images/noticias/'.$r->img4.'" rel="prettyPhoto['.$r->fgal.']"><img src="/images/noticias/'.$r->img4.'" width="120" height="60"/></a>';
  }
$news->free_result();

Edited by N3lson

You can't do it, kid. But don't worry, my boy. You're not the only one. No one else can do it.

Share this post


Link to post
Share on other sites
Devexz

não sei se isto tem alguma coisa haver, no entanto tens aqui um problema ( não sei se é de propósito ou não ).

$id = isset($_GET['id']) ? (intval($_GET['id'])) : false;
if(!$id){echo '<center><h2>ERRO: NÃO SELECIONASTE UMA NOTÍCIA</h2>';} // portanto, mandas o output mas continuas o script
$quuery = "SELECT * FROM noticias WHERE id={$id}";
$news = $conexao->query($quuery); //// query será executada na mesma
while($r = $news->fetch_object()) // fazes fetch de false

Suponho que o erro não esteja aí.

Edit:

Estás a chamar o $news->free_result(); dentro do ciclo while? Se sim tens de meter fora.

Edited by Devexz
  • Vote 1

Contador de calorias: caloriaspordia.com

Share this post


Link to post
Share on other sites
N3lson

Sim isso é para ser assim apenas mostra a mensagem no local onde deveria aparecer a noticias mas o resto do script tem de continuar.

O link é este : http://www.sccabecudense.com/noticias_d.php?id=75

Edit:

o $news->free_result(); está fora apenas acrescentei depois no post mas nao tinha verificado que tinha o while ainda por fechar

Edited by N3lson

You can't do it, kid. But don't worry, my boy. You're not the only one. No one else can do it.

Share this post


Link to post
Share on other sites
N3lson

Resolvido, não sei se tinha algo a ver mas troquei uma serie de ifs e coloquei o operador ternário e já não aparece erro.

Obrigado


You can't do it, kid. But don't worry, my boy. You're not the only one. No one else can do it.

Share this post


Link to post
Share on other sites
brunoais

O teu problema é que tinhas o $news->free_result(); dentro do while. Isso estava a fazer com que ele perdesse toda a informação para a interação seguinte, daí o warning.

Foi por causa disso que eu fiz a pergunta ;)

  • Vote 1

"[Os jovens da actual geração]não lêem porque não envolve um telecomando que dê para mirar e atirar, não falam porque a trapalhice é rainha e o calão é rei" autor: thoga31

Life is a genetically transmitted disease, induced by sex, with death rate of 100%.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.