php - Cakephp Minimum value query -
php - Cakephp Minimum value query -
i have issue cakephp can retrieve min value score field cannot seem id same row using grouping aswell. below code. doing wrong?
function index() { $this->leaderboard->recursive = 0; $this->set('leaderboards', $this->paginate()); $min = $this->leaderboard->find('all', array( 'fields' => array('min(leaderboard.score) min_score') )); $minimum = $min[0][0]['min_score']; pr($min); echo $minimum; if (!empty($this->data)) { $this->leaderboard->create(); if($this->data['leaderboard']['score'] > $minimum){ if ($this->leaderboard->save($this->data)) { $this->session->setflash(__('the leaderboard has been saved', true)); $this->leaderboard->delete($min[0]['leaderboard']['id']); } else { $this->session->setflash(__('the leaderboard not saved. please, seek again.', true)); } } else { $this->session->setflash(__('score not high plenty leaderboard',true)); } } $users = $this->leaderboard->user->find('list'); $trips = $this->leaderboard->trip->find('list'); $this->set(compact('users', 'trips')); }
u have utilize sub-query getting id same row of minimum 1 ..
query
select id leaderboard score in ( select min(score) leaderboard );
and how utilize sub-queries in cakephp take @ http://book.cakephp.org/view/1030/complex-find-conditions
i have done same task in other way
$minimum = $this->leaderboard->find('first',array( 'fields'=>array('min(score) minimumscore'))); $data = $this->leaderboard->find('first',array( 'fields'=>array('id'), 'conditions'=>array('score'=>$minimum[0]['minimumscore'])));
and u can access id
$id = $data['leaderboard']['id'];
hope help
php cakephp
Comments
Post a Comment