2016-12-26 2 views
0

Я столкнулся с одной проблемой. Я использую Cakephp2.0 Framework. Я хочу, чтобы searchcount будет обновляться один раз в день. Например: -как обновлять данные только один раз в день?

Вот мой код:

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

Добавьте поле в таблицу «ex: __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 
    } 
}