2016-12-26 74 views
0

我正面臨着一個問題。我正在使用Cakephp2.0框架。我希望搜索次數將在一天內更新一次。例如: -如何在一天內只更新一次數據?

這裏是我的代碼:

Starting serachcount = 0; 
if it access today(26dec 2016) means n number of times its count will 
be **serachcount** = 1; 

If it is not access by tomorrow (27dec 2016) its count should not be 
updated its still **serachcount** = 2; 
And this process carries on 

誰能幫助我在這裏是我的功能

這裏是我的代碼是我曾嘗試

public function visits($id=null){ 
     $this->loadModel('User'); 
     if($this->request->is('post')){ 
      $data= $this->request->data; 
      $id = $data['id']; 
      $userdata = $this->User->find('first',array(
       'conditions'=>array('User.id'=>$id), 
       'fields'=>array('id','searchcount') 
       ) 
      ); 
      $this->User->id = $id; 
      $searchcount = $userdata['searchcount']; 
      $searchcount = $searchcount+1; 
      $this->User->saveField('searchcount',$searchcount); 
      echo $searchcount; die; 
     } 
    } 
+0

在表中添加一個字段,例如:__count_date__,並在其中存儲更新計數器的時間,下次要更新時,查看該字段值並將其與當前時間進行比較,如果它是不在同一天,更新櫃檯。否則不要。 –

回答

1

您只需要@Ayaou提到的簡單邏輯:

1. add field in your table eg. count_date 
2. do not forget to update count_date when searchcount get updated 
3. make your visits function something like this: 

if($this->request->is('post')){ 
$data= $this->request->data; 
$id = $data['id']; 
$userdata = $this->User->find('first',array(
    'conditions'=>array('User.id'=>$id), 
    'fields'=>array('id','searchcount','count_date') 
      ) 
     ); 
    $this->User->id = $id; 
    $searchcount = $userdata['searchcount']; 
    $countDate = $userdata['count_date']; 
    $dateToday = date('Y-m-d'); 
    if($countDate != $dateToday) { 
    $dataToUpdate["count_date"] = $dateToday; 
    $dataToUpdate["searchcount"] = $searchcount+1; 
    $this->User->save($dataToUpdate); 
    } else { 
    // already updated today 
    } 
}