如何在php codeigniter中的某些事件上平衡增量和减量?

时间:2015-08-13 11:05:58

标签: php codeigniter

我有一个CI应用,其中Admin创建了转销商。并且经销商表有一个名为Balance的字段,由admin填写。每个经销商都有自己的用户。因此经销商在其他用户之间保持平衡。每个用户只能获得5美元,而不是更少而不是更多。因此,一旦经销商为某些用户分配了一些余额,我的代码应该计算30天.30天后,用户余额将再次变为零。而经销商只能在他的用户之间分配余额。我很困惑从哪里开始以及如何做到这一点!请帮忙!

控制器:

    public function edit ($id = NULL)
    {
        // Fetch a user or set a new one
        if ($id) {
            $this->data['user'] = $this->reseller_m->get($id);
            count($this->data['user']) || $this->data['errors'][] = 'User could not be found';
        }
        else {
            $this->data['user'] = $this->reseller_m->get_new();
        }

        // Set up the form
        $rules = $this->reseller_m->rules_admin;
        $id || $rules['password']['rules'] .= '|required';
        $this->form_validation->set_rules($rules);

        // Process the form
        if ($this->form_validation->run() == TRUE) {



$data = $this->reseller_m->array_from_post(array('sip_username','sip_password','key','allocation_block','name','email','password','phone','balance','user_num','address','country','country_code','created','modified','status'));


            $data['password'] = $this->reseller_m->hash($data['password']);

            $key=$this->reseller_m->save($data, $id);

        //here we get the last inserted record id in $last_id// 
            $last_id = $this->db->insert_id();

        //The logic to create blank rows in user table mapped to reseller_id    

            $values=array($this->input->post('name'),$this->input->post('country_code'),$this->input->post('allocation_block'),$this->input->post('user_num'));

            $key=implode('-',$values);

            $this->db->where('id',$last_id);
            $this->db->update('reseller',array('key'=>$key));

                for($i=1; $i<=$data['user_num'];$i++)
                {
                $userdata=array('key'=>$key);
            // here users is taken name of user table with retailer_id is field
                 $this->db->insert('users',$userdata);
                 }


            redirect('admin/reseller');
        }

        // Load the view
        $this->data['subview'] = 'admin/reseller/edit';
        $this->load->view('admin/_layout_main', $this->data);
    }



    public function get_new(){
        $user = new stdClass();

    //          $user->id = '';
        $user->sip_username='';
        $user->sip_password='';
        $user->key='';
        $user->allocation_block='';
        $user->name='';
        $user->email = '';      
        $user->password = '';
        $user->phone=''; 
        $user->user_num=''; 
        $user->address = '';
        $user->status = '';
        $user->country=''; 
        $user->country_code='';
        $user->created = '';
        $user->modified  = '';
        $user->balance = '';
        return $user;
        $this->session->set_userdata($data);

    }

1 个答案:

答案 0 :(得分:1)

任何特定时间的东西都需要在cron作业中运行。基本上,你需要一个每天运行的PHP脚本,它可以检查超过30天的记录,然后再次将数据库更新为0。