Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
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
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.
Já testou sua condição ?
Debuge o retorno da mesma.