Как вставить значение моего флажка в другой столбец в базе данных codeigniter - PullRequest
0 голосов
/ 06 февраля 2019

Это должно быть так

ID | access1 | access2 | access3 |

и значения:

1 | 1 |0 | 1

// myController

    $basic_data = array();

    $select_access1 = $_POST("select_access1");
    $select_access2 = $_POST("select_access2");
    $select_access3 = $_POST("select_access3");
    $select_access4 = $_POST("select_access4");
    $select_access5 = $_POST("select_access5");

    $basic_data[] = array('accs_trans_sec'=>$select_access1,'accs_acctng_sec'=>$select_access2, 'accs_admin_sec'=>$select_access3,'accs_dashboard_sec'=> $select_access4, 'accs_reports_sec'=>$select_access5);

    $this->RoleModel->saveRole($basic_data);

// myModel

public function saveRole($basic_data)
{
    foreach($basic_data as $value) {
        $this->db->insert('roles_global_access', $basic_data);
    }}

Ответы [ 4 ]

0 голосов
/ 06 февраля 2019

Вы должны попробовать это.

Контроллер:

$this->RoleModel->saveRole($_POST);

Модель:

    public function saveRole($basic_data){
           extract($basic_data);
           $dataset = array(
            'accs_trans_sec' => $basic_data['select_access1'],
            'accs_acctng_sec' => $basic_data['select_access2'],
            'accs_admin_sec' => $basic_data['select_access3'],
            'accs_dashboard_sec' => $basic_data['select_access4'],
            'accs_reports_sec' => $basic_data['select_access5']
          );
          $this->db->insert('roles_global_access', $dataset);
    }
0 голосов
/ 06 февраля 2019

Предположим, что вы получаете значения вашего флажка на основе ваших $_POST переменных.

Поскольку вы объявили $basic_data как array () , не нужно приводитьэто как $ basic_data [] .Таким образом, на вашем контроллере это должно быть так:

    $basic_data = array(
        'accs_trans_sec'=>$select_access1,
        'accs_acctng_sec'=>$select_access2,
        'accs_admin_sec'=>$select_access3,
        'accs_dashboard_sec'=> $select_access4,
        'accs_reports_sec'=>$select_access5
    );

И вашей модели нет необходимости использовать цикл, так как вы вставляете Object data, это должно выглядеть так:

public function saveRole($basic_data)
 {
    $this->db->insert('roles_global_access', $basic_data);

    return ($this->db->affected_rows() != 1) ? false : true;
}

в общем, если модель возвращает true , то она успешно вставила данные.

Чтобы проверить, успешно ли вставлены данные:

 $result = $this->RoleModel->saveRole($basic_data);

   if($result == true){
    echo ("Successfully inserted!");
   }else{
     echo ("Problem!");
   }
0 голосов
/ 06 февраля 2019

Во-первых, вы не получаете правильные данные.С $_POST необходимо использовать квадратные скобки [].

Во-вторых, не использовать foreach петлю в модели

Получить данные в контроллере, как это

  $basic_data = array(
    'accs_trans_sec' => $_POST['select_access1'],
    'accs_acctng_sec' => $_POST['select_access2'],
    'accs_admin_sec' => $_POST['select_access3'],
    'accs_dashboard_sec' => $_POST['select_access4'],
    'accs_reports_sec' => $_POST['select_access5']
  );
  $this->RoleModel->saveRole($basic_data);

Модель

public function saveRole($basic_data){
    return $this->db->insert('roles_global_access', $basic_data);
}
0 голосов
/ 06 февраля 2019

Вы можете установить эти данные в массив так:

$data = array(
    'column1' => 'My Value 1',
    'column2'  => 'My Value 2',
    'column3'  => 'My Value 3'
);
$this->db->insert("table_name", $data);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...