2015-09-02 5 views
1

У меня есть реселлер и пользователи. Теперь каждый пользователь сопоставляет свой реселлер с полем KEY, который однозначно определяет реселлера! теперь у меня есть форма, где я редактирую пользователя. здесь, если реселлер устанавливает баланс пользователя в yes, тогда я хочу вычесть 5 евро из поля баланса реселлера. Ниже мой код:Как вычесть значение из поля в PHP codeigniter?

контроллер для проверки, если реселлер установить баланс да:

if($this->input->post('balance') === "Yes") 
     { 
      $this->reseller_m->deduct(); 
     } 

функцию режима, который должен вычесть 5 из реселлера баланса:

public function deduct($balance) 
{ 
    $this->db->set('balance', 'balance-5'); 
    $this->db->where('id' , $id); 
    $this->db->update('reseller',$data); 
} 

редактировать код:

public function edit ($id = NULL) 
{ 

    $usertype=$this->session->userdata('usertype'); 
    if($usertype ==="reseller") 
    { 

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

    // Set up the form 
    $rules = $this->user_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->user_m->array_from_post(array('sip_id','sip_pass','name','email', 'password','phone','status','created','balance')); 
     $data['password'] = $this->user_m->hash($data['password']); 



     $this->user_m->save($data, $id); 


     if($this->input->post('balance') === "Yes") 
     { 

      $this->reseller_m->deduct(); 

      //echo "goimng"; 
     } 


     redirect('reseller/user'); 
    } 

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


} 
else{ 
    $this->load->view('permission'); 
} 

} 

Помогите мне с ubtract 5 от реселлера только тогда, когда он редактирует своего пользователя и не должен влиять на других.

ответ

2

Попробуйте это в вашей модели, где $id является идентификатор реселлера.

public function deduct($id) 
{ 
    $this->db->set('balance', 'balance-5', false); 
    $this->db->where('id' , $id); 
    $this->db->update('reseller'); 
} 

Alse, в вашем контроллере вы должны знать идентификатор распространителя, и использовать его при вызове функции модели:

if($this->input->post('balance') === "Yes") 
     { 
      $this->reseller_m->deduct($id); //you must have the $id (reseller's id) value set 
     } 
+0

, если я не передам ключ вместо id? – Rajan

+0

нет, id в порядке. Добро пожаловать –

+0

эй это правильно для модуля реселлера. Но у меня также есть пользователь admin, которого он может редактировать Реселлер и Пользователь Как w флигель. теперь, если он редактирует пользователей и устанавливает баланс на да, как будет вычитаться остаток? потому что каждый пользователь сопоставляется с реселлером с помощью поля KEY, которое является uniuqe – Rajan

1

Попробуйте $this->db->set('balance', 'balance-5', FALSE);

+0

эй спасибо за ответ, но это не влияет на поле баланса! любая идея, где я ошибаюсь – Rajan

+0

Почему OP должен использовать ваш код. Не могли бы вы уточнить –

+0

См. Реселлер в своей учетной записи. то он может просматривать его баланс, просматривать и редактировать своих пользователей. Теперь, если он редактирует пользователя и устанавливает баланс на да, я хочу вычесть 5 евро каждый раз, когда он устанавливает его на yes – Rajan

1

set() также принимает необязательный третий параметр ($ побег), что позволит предотвратить данные от спасся, если установлено значение FALSE.

Использование FALSE в качестве третьего параметра в вашем наборе

$this->db->set('balance', 'balance-5',FALSE); 

Также вы не определяете $id and $data в вашей функции и изменить обновление

$this->db->update('reseller'); 

Итак, наконец, ваша функция будет

MODLE

public function deduct($id) 
    { 
     $this->db->set('balance', 'balance-5',FALSE); 
     $this->db->where('id' , $id); 
     $this->db->update('reseller'); 
    } 

Controler

if($this->input->post('balance') === "Yes") 
     { 

      $this->reseller_m->deduct($id);/// pass youe id here 

      //echo "goimng"; 
     } 
+0

эй спасибо за ответ, но это не повлияло на поле баланса! любая идея, где я ошибаюсь – Rajan

+0

Почему OP должен использовать ваш код.Можете ли вы прокомментировать –

+0

Поскольку вы не определяете '$ id' и' $ data' в своей функции – Saty

Смежные вопросы