Codeigniter Отправить несколько строк в базе данных - PullRequest
0 голосов
/ 26 августа 2018

Я пытаюсь отправить несколько строк в базе данных.И я получаю эту ошибку: Имя файла: C: /xampp/htdocs/soluforma_ghm/system/database/DB_query_builder.php Номер строки: 1481

Не могли бы вы поделиться некоторыми указаниями, чтобы решить мою проблему.Заранее спасибо.

Мой файл просмотра с AJAX.Таким образом, я добавляю несколько входов

// Add options
$.each(response,function(index,data){
    $('#sel_depart').append(
        '<div class="form-check">'+
        '<input type="checkbox" name="formandos_servicos[]"  value="'+data['id']+'">'+
        '<input type="text" name="nome_funcionario_servicos[]" value="'+data['title']+'" >'+
        '<input type="text" name="naturalidade_servicos[]" value="'+data['naturalidade']+'" placeholder="Naturalidade">'+
        '<input type="text" name="data_nascimento_servicos[]" value="'+data['data_nascimento']+'" placeholder="Data Nascimento">'+
        '<input type="text" name="nacionalidade_servicos[]" value="'+data['nacionalidade']+'" placeholder="Nacionalidade">'+
        '<input type="text" name="doc_identificacao_servicos[]" value="'+data['doc_identificacao']+'" placeholder="Documento de Identificacão">'+
        '<input type="text" name="validade_identificacao_servicos[]" value="'+data['validade_identificacao']+'" placeholder="Validade CC">'+
        '</div>'
    );
}

МОЙ Servicos_model.Я считаю $ this-> input-> post ['formandos_servicos'] и отправляю несколько строк.

public function set_servicos($id = 0) {
    $this->load->helper('url');
    $slug = url_title($this->input->post('title'), 'dash', TRUE);
    $data = array();

    $count = count($this->input->post['formandos_servicos']);

    for($i = 0; $i < $count; $i++) {
        $data[] = array(
            'title' => $this->input->post('title'),
            'slug' => $slug,
            'area_servicos' => $this->input->post('area_servicos'),
            'formadores_servicos' => $this->input->post('formadores_servicos'),
            'data_servicos' => $this->input->post('data_servicos'),
            'nome_servicos' => $this->input->post('nome_servicos'),
            'horas_servicos' => $this->input->post('horas_servicos'),
            'conteudos_servicos' => $this->input->post('conteudos_servicos'),

            'formandos_servicos' => $this->input->post['formandos_servicos'][$i],
            'nome_funcionario_servicos' => $this->input->post['nome_funcionario_servicos'][$i],
            'naturalidade_servicos' => $this->input->post['naturalidade_servicos'][$i],
            'data_nascimento_servicos' => $this->input->post['data_nascimento_servicos'][$i],
            'nacionalidade_servicos' => $this->input->post['nacionalidade_servicos'][$i],
            'doc_identificacao_servicos' => $this->input->post['doc_identificacao_servicos'][$i],
            'validade_identificacao_servicos' => $this->input->post['validade_identificacao_servicos'][$i],

            'anotacoes_servicos' => $this->input->post('anotacoes_servicos'),
            'categoria_servicos' => $this->input->post('categoria_servicos'),
            'visivel_servicos' => $this->input->post('visivel_servicos'),
            'utilizador_servicos' => $this->input->post('utilizador_servicos'),
            'criado_servicos' => $this->input->post('criado_servicos'),
            'modificado_servicos' => $this->input->post('modificado_servicos')
        );
    }
    if ($id == 0) {
        return $this->db->insert_batch('servicos', $data);
    }
}

Ответы [ 3 ]

0 голосов
/ 26 августа 2018

Спасибо за ответ.Я пытаюсь print_r проверить данные Array, и я получаю и очищаю Array

<code>if ($id == 0) {
//return $this->db->insert_batch('servicos', $data);
echo '<pre>';
print_r($data);
echo '
';умереть();}

print_r Результат:

Array
(
)
0 голосов
/ 27 августа 2018

Массив теперь работает.Я заменяю [] на () в

$this->input->post[''][$i] 

$this->input->post('')[$i]

В [formandos_servicos] => 972 индекс массива правильный.Но они неверны:

[nome_funcionario_servicos] => Manuel Fonseca Santos
[naturalidade_servicos] => Fornos Algodres
[data_nascimento_servicos] => 1960-11-15
[nacionalidade_servicos] => Portuguesa
[doc_identificacao_servicos] => 1524575 7ZY0
[validade_identificacao_servicos] => 2019-09-04

, потому что я считаю:

count($this->input->post('formandos_servicos'));

Я получаю несоответствие между input type = "checkbox" и другими типами input type = "text"Поля.

0 голосов
/ 26 августа 2018

Вы можете использовать $this->db->last_query();, чтобы узнать, какой запрос выполняется для вставленных данных в базу данных. с echo()

...