return $count;
}
- public function getRandomId($row, $user_id) {
- $sql = "SELECT id FROM entries WHERE user_id=? LIMIT 1 OFFSET ? ";
- $params = array($user_id, $row);
- $query = $this->executeQuery($sql, $params);
+ public function getRandomId($user_id) {
+ $random = (STORAGE == 'mysql') ? 'RAND()' : 'RANDOM()';
+ $sql = "SELECT id FROM entries WHERE user_id=? ORDER BY ". $random . " LIMIT 1";
+ $params = array($user_id);
+ $query = $this->executeQuery($sql, $params);
+ $id = $query->fetchAll();
- return $query->fetchAll();
+ return $id;
}
/* For some unknown reason I can't get displayView() to work here (it redirects to home view afterwards). So here's a dirty fix which redirects directly to URL */
case 'random':
- $count = $this->store->getEntriesByViewCount($view, $this->user->getId());
- $id_query = $this->store->getRandomId(rand(1,$count)-1, $this->user->getId());
- $id = $id_query[0];
Tools::logm('get a random article');
- Tools::redirect('?view=view&id=' . $id[0]);
-
- //$this->displayView('view', $id);
+ if ($this->store->getRandomId($this->user->getId())) {
+ $id = $this->store->getRandomId($this->user->getId())[0];
+ Tools::redirect('?view=view&id=' . $id[0]);
+ Tools::logm('got the article with id ' . $id[0]);
+ }
break;
default:
break;