Запрос обновления не работает в codiegniter - PullRequest
0 голосов
/ 01 марта 2019

Я пытаюсь обновить записи таблицы Stud с помощью codeigniter, но запись не обновляется, см. Следующий код файла Stud_edit.php :

<!DOCTYPE html> 
<html lang = "en">
<head> 
  <meta charset = "utf-8"> 
  <title>Students Example</title> 
</head> 
<body> 
<form method = "" action = "">
 <?php 
        echo form_open('Stud_controller/update_student'); 
        echo form_hidden('old_roll_no',$old_roll_no); 
        echo form_label('Roll No.'); 
        echo form_input(array('id'=>'roll_no',
           'name'=>'roll_no','value'=>$records[0]->roll_no)); 
        echo "
        "; 

        echo form_label('Name'); 
        echo form_input(array('id'=>'name','name'=>'name',
           'value'=>$records[0]->name)); 
        echo "
        "; 

        echo form_submit(array('id'=>'sub mit','value'=>'Edit')); 
        echo form_close();
     ?> 

  </form> 

Ниже приведен код контроллера:

public function update_student(){ 
     $this->load->model('Stud_Model');

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

     $old_roll_no = $this->input->post('old_roll_no'); 
     $this->Stud_Model->update($data,$old_roll_no); 

     $query = $this->db->get("stud"); 
     $data['records'] = $query->result(); 
     $this->load->view('Stud_view',$data); 
  }

И следующий код модели:

public function update($data,$old_roll_no) { 
     $this->db->set($data); 
     $this->db->where("roll_no", $old_roll_no); 
     $this->db->update("stud", $data); 
  } 

Ответы [ 2 ]

0 голосов
/ 01 марта 2019

Во-первых, вы используете 2 <form> теги.Попробуйте использовать один и использовать атрибут method

<form method = "" action = "">
echo form_open('Stud_controller/update_student')

Если вы используете метод set() для обновления запроса, не используйте $data в функции update()

Метод 1

без set() метод

public function update($data,$old_roll_no) { 
 $this->db->where("roll_no", $old_roll_no); 
 $this->db->update("stud", $data); 
} 

Метод 2

с set() метод

public function update($data,$old_roll_no) { 
 $this->db->set($data);
 $this->db->where("roll_no", $old_roll_no); 
 $this->db->update("stud"); 
} 
0 голосов
/ 01 марта 2019

Модель:

public function update($data,$old_roll_no) { 
     $this->db->where("roll_no", $old_roll_no); 
     $this->db->update("stud", $data); 
  } 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...