Codeigniter - почему в Update_batch изменена только одна строка - PullRequest
0 голосов
/ 01 ноября 2018

У меня есть пример таблицы

ID | answer1 | answer2   | question

1  | abc   | ghi    | 

2  | def   | klm    |

Хочу обновить вопрос в колонке, выбрав ID Это мой код, чтобы получить пример таблицы формы ID

$query = $this->db->query('SELECT * FROM example');
    $data=array();
    foreach($query->result() AS $value){
        $data[] = $value->id;

    } 
$implode = implode(',',$data);
//get from post
$question= $this->input->post('question');
foreach($question AS $q){

        $data[]=array(
        'id' => $implode,
        'question' => $q
        );

        }
        $this->db->update_batch('example',$data,'id');
//I use multiple add filed
<button class="add_field_button2">Add More Fields</button>
<input type="text" name="question[]" value="<?= $rowk->question;?>">

При добавлении 2 вопроса для обновления таблицы только одна строка изменяется

Мой массив данных

Array ( [0] => Array ( [id] => 1,2 [question] => question1 ? ) ) Array ( [0] => Array ( [id] => 1,2 [question] => question1 ) [1] => Array ( [id] => 107,108 [question] => question2 ) )

Ответы [ 2 ]

0 голосов
/ 02 ноября 2018

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

Array(
    [0]=>Array(
            [id]=>1,
            [question] => question1 ?
        ),
    [1]=>Array(
        [id]=>2,
        [question] => question1 ?
    ),
    [2]=>Array(
        [id]=>107,
        [question] => question2
    )
)

Я думаю, что ваш формат массива не правильный

0 голосов
/ 02 ноября 2018

Здравствуйте, вы можете проверить мой ответ Codeigniter - Обновить несколько строк с помощью Select2 Я думаю, что это вам чем-то поможет, если оно нажмет кнопку «Мне нравится» :-D. Спасибо просто измените это

foreach($question AS $q){

        $tempdata=array(
        'id' => $implode, // this must be a single value i think because by default update_batch third parm is work like "=" not "IN"  
        'question' => $q
        );
  array_push($data, $tempdata);
 }
        $this->db->update_batch('example',$data,'id');
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...