2010-08-02 12 views
2

J'utilise le framework Zend et essaye d'obtenir les résultats dans un ordre aléatoire. Cela retourne les résultats mais ne semble pas varier l'ordre. Des idées?Pourquoi cette randomisation n'est-elle pas la commande?

class Model_DBTable_Tblquotes extends Zend_Db_Table 
{ 
public function getQuotes() 
{ 
    $select = $this->select(); 
     $select->setIntegrityCheck(false) 
       ->from('tblQuotes',array('id','quote','author','dateCreated')) 
     ->order(new Zend_Db_Expr('RAND()')) 
     ->limit(25, 0); 

     return $this->fetchAll($select); 

} 
} 

Répondre

1

Avez-vous essayé

->order('RAND()') 

au lieu de

->order(new Zend_Db_Expr('RAND()')) 

Vous pouvez également utiliser

$select->__toString(); 

Sur votre db obj pour obtenir une chaîne de la requête afin que vous pourrait faire écho et regarder pour voir ce qui est mal.

+0

Il s'est avéré que mon code d'origine fonctionnait correctement. J'ai cependant eu un problème de mise en cache avec windows 7 et ma version de filezilla - comment ennuyeux !! :) Marquez-vous comme la réponse que votre réponse était potentiellement utile – Andrew

0

vous devez passer dans l'expression comme une chaîne: "random()"

exemple: -> ordre (nouveau Zend_Db_Expr ('random()'));