Exemple #1
0
 public function obtener_pregunta($ronda_id, $pregunta_id = 0)
 {
     $rxp = new RondaXPregunta();
     $rxpn = $rxp::tableName();
     $c = new CDbCriteria();
     $c->join = 'JOIN ' . $rxpn . ' ON ' . $rxpn . '.pregunta_id = t.id';
     $c->addCondition($rxpn . '.ronda_id = :ronda_id');
     $params[':ronda_id'] = $ronda_id;
     if ($pregunta_id) {
         $c->addCondition($rxpn . '.pregunta_id = :pregunta_id');
         $params[':pregunta_id'] = $pregunta_id;
     } else {
         $max = $rxp->count('ronda_id=' . $ronda_id);
         $c->offset = rand(0, $max - 1);
     }
     $c->limit = 1;
     $c->params = $params;
     $pregunta = $this->findAll($c);
     if (isset($pregunta[0])) {
         $pregunta = $pregunta[0];
     }
     if ($this->verificar_respuestas($ronda_id, $pregunta)) {
         $pregunta = $this->obtener_pregunta($ronda_id);
     }
     return $pregunta;
 }