Insert , Update, Delete. Работа с базой данных.


Допустим, что у нас таблица "Tasks" (заданий) в базе данных.

Id Name Difficulty %
1 A * B 45
2 A + B 1

Cоздаём следующие файлы:


  • Test_view.php - в папке controllers.
  • Test.php - в папке views.
  • Test_model.php - в папке models.

Попробуем:
  • изменить первую строку таблицы.
  • добавить строку
  • удалить вторую строку

Test_view.php

<form method="post">
	<button name="edit"> Изменить </button> 
	<button name="delete"> Удалить </button>
	<button name="insert"> Добавить </button>
</form>
				

Для каждой кнопки будет сработана функция.

Test.php

class test extends CI_Controller {
	public function index(){
		$this->load->model("test_model");
		if($_POST['edit']){ 
			$id = 1;
			$update['difficulty'] = "30"; // изменим сложность с 45 на 30  	
			$update['name'] = "A/B"; // изменим заглавие с A * B на A / B 
			$this->test_model->update_id($id, $update); // отправляем  $id строки и массив $update 	
		}
		if($_POST['delete']){ 
			$id = 1;
			$this->test_model->delete_id($id); // отправляем только $id строки
		}
		if($_POST['insert']){ 
			$insert['difficulty'] = "60"; 	
			$insert['name'] = "A - B"; 
			$this->test_model->insert_id($insert); // отправляем массив $insert
		}
		$this->load->view('test_view');
		}
	}
       
				

Так получилось, что все действия с базой данных я осуществляю в моделях. Поэтому я написал все функции в модели Test_model. Ниже приведены три функции (Insert, Update, Delete).

Test_model.php

class Test_model extends CI_Model {
	
	public function delete_id($id){
		$this->db->where('id', $id);
		$this->db->delete("tasks");
	}
	public function update_id($id, $update){
		$this->db->where('id', $id);
		$this->db->update("tasks", $update);
	}
	public function insert_id($insert){
		$this->db->update("tasks", $insert);
	}	
}
       
				

Есть ошибки или есть идея лучше? Напишите в комментариях.


Чтобы написать комментарии вам нужно войти в систему или зарегистрируйтесь

Комментарии