Codeigniter не получает ID и обновление базы данных не работает - PullRequest
0 голосов
/ 25 октября 2018

Я изучил простое обновление скриптов с использованием Codeigniter, но у меня есть проблема, данные не будут обновляться, потому что они не получают идентификатор.Но когда я попытался выполнить запрос с использованием синтаксиса SQL в mysql, он сработал и обновил данные.

Вот моя таблица (член):

id | Name | Job | Age
_____________________
1  |Joe   |None | 30
2  |Mike  |None | 23
3  |Alice |None | 21

и вот мои сценарии контроллера дляполучить данные по идентификатору:

public function update_now($id)
  {

    $name = $this->input->post('name');
    $job  = $this->input->post('job');
    $age  = $this->input->post('age');

    $query = $this->m_update->update_data($name, $job, $age);
    if ($query > 0) {
        }
    redirect('data_detail');

Вот мои модельные скрипты:

function update_data($name, $job, $age)
{
  $query=$this->db->query("update member SET name='$name', job='$job', age='$age' where id='$id'");
 } 

Когда я пытался протестировать скрипты, изменилось where id=1это сработало, но не сработало, когда я перешел на $id, оно не получает идентификатор данных.Я что-то пропустил?Спасибо за все решения и предложения.

Ответы [ 3 ]

0 голосов
/ 25 октября 2018

В вашей форме вам необходимо отправить данные с идентификатором в URL-адресе, например, так:

<form method="post" action="<?= base_url("route/$id") ?>">
    ....
</form>

Затем вы должны отправить этот идентификатор в вашу модель примерно так:

$data = array(
    'name' => $this->input->post('name'),
    'job' => $this->input->post('job'),
    'age' => $this->input->post('age')
);

$query = $this->m_update->update_data($id, $data);

if ($query) {
     redirect('data_detail');
}

На данный момент ваша модель должна быть изменена на:

function update_data($id, $data) {
  return $this->db->where('id', $id)->update("member", $data);
} 

Для получения дополнительной информации вы должны проверить руководство пользователя здесь:

Codeigniter 3 - Обновление данных с помощью запросастроитель

0 голосов
/ 26 октября 2018

Вы не передали $ id функции update_data в модели.

Измените код следующим образом:

контроллер :

public function update_now($id)
{
$name = $this->input->post('name');
$job  = $this->input->post('job');
$age  = $this->input->post('age');

$query = $this->m_update->update_data($name, $job, $age, $id);
if ($query > 0) {
    }
redirect('data_detail');
}

модель :

function update_data($name, $job, $age, $id)
{
  $query=$this->db->query("update member SET name='$name', job='$job', age='$age' where id='$id'");
} 
0 голосов
/ 25 октября 2018

Ваша форма должна иметь следующий формат:

<form method="post" action="<?= base_url("route/$id") ?>">
    ....
</form>

Тогда будет работать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...