Ir para conteúdo

POWERED BY:

Arquivado

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

Raphael C.

While($var =...

Recommended Posts

Como faço uma função que funcione, por exemplo, igual ao while(have_posts()) e the_post() do Wordpress, ou while($var = mysql_fetch_object($query))?

No momento, estou tentado fazer isso:

<?php

  ....

  final static public function getBoards() {
     static $_boards = null;
     try {
        return $_boards ? $_boards : $_boards = DatabaseManager::getInstance()->query( 'SELECT * FROM `' . Database::Table_Prefix . 'boards`;' )->fetch_object();
     } catch ( Exception $e ) {
        trigger_error( $e->getMessage(), E_USER_ERROR );
     }
  }

  ...

  while ( $a = $wtk->getBoards() ) {
     var_dump( $a );
  }

 

Porém fica em loop infinito. O que está errado? Valew

Compartilhar este post


Link para o post
Compartilhar em outros sites

Já testou sua condição ?

return $_boards ? $_boards : $_boards = DatabaseManager::getInstance()->query( 'SELECT * FROM `' . Database::Table_Prefix . 'boards`;' )->fetch_object();

 

Debuge o retorno da mesma.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Estava vendo na source do Wordpress, ele usa uma variavel na função para fazer isso.

Alterei minha source, mas se na db, se não tiver tudo na sequência (1, 2, 3, 4), ele para.

   final static public function getBoards() {
     $curLoopId = self::getInstance()->curLoopId +=1;
     if ( $a = DatabaseManager::getInstance()->query( 'SELECT * FROM `' . Database::Table_Prefix . 'boards` WHERE `key`=' . $curLoopId . ' ;' )->fetch_object() ) {
        return $a;
     }
     return false;
  }

 

Edit.

A minha função tem o mesmo comportamento mysqli_fetch_object(), se dar print só nela só mostra a linha atual, mas se colocar em um while() passa todos.

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.