У меня возникли проблемы с продолжением моего первого проекта codeigniter, и я чувствую, что ответ действительно близок ...
Я заполняю форму полей ввода из базы данных, и когда пользователь отправляет форму, она должна проходить по строкам базы данных и обновлять содержимое на основе 'id' каждой строки.
Моя форма (в представлении admin.php) выглядит примерно так:
<?php echo form_open('admin/update'); ?>
<?php foreach($content as $row) : ?>
<?php echo form_input('id['. $row->id .'][id]', $row->id); ?>
<?php echo form_input('id['. $row->id .'][order]', $row->order); ?>
<?php echo form_input('id['. $row->id .'][title_text]', $row->title_text); ?>
<?php echo form_textarea('id['. $row->id .'][body_text]', $row->body_text); ?>
<?php
if ($row->visibility == 'visible') {
echo form_checkbox('id['. $row->id .'][visibility]', 'visibility', TRUE);
} else {
echo form_checkbox('id['. $row->id .'][visibility]', 'visibility', FALSE);
}
?>
<?php endforeach;?>
<?php echo form_submit('Save Changes', 'Save Changes'); ?>
<?php echo form_close(); ?>
Теперь, большая часть этого основана на обучающих материалах и справочных документах. Вот код из контроллера «admin», который я вызываю, когда люди нажимают «Сохранить изменения»:
function update()
{
$this->load->model('admin_model');
$this->admin_model->updateRecords($_POST['id']);
$this->index();
}
Затем данные передаются в модель, где функция выглядит следующим образом:
function updateRecords($data)
{
$this->db->insert_batch('content', $data);
}
Это единственный способ заставить его работать. Он прекрасно вставляет данные, но добавляет их в новые строки вместо обновления уже существующих в соответствии с их уникальными идентификаторами.
Ради хорошего порядка, вот столбцы, которые у меня есть в моей базе данных MySQL:
id (PRIMARY and AUTOINCREMENT)
order
title_text
body_text
visibility
origin_date
Заранее большое спасибо:)