Урок 5 — CRUD. Добавление, редактирование, удаление информации в БД.

Продолжаем серию уроков по CodeIgniter 2.1.0.

И в этом уроке научимся добавлять, редактировать и удалять информацию в БД. Делается это очень просто, так что включайте видео и обучайтесь :)

Выставляйте качество видео 480р.

На прошлом уроке мы познакомились с моделями и самое время научиться ими пользоваться по полной.

Так называемый CRUD, то есть Create Retrieve Update Delete. Retrieve — это извлечение, и им мы с Вами занимались на прошлом уроке. Сейчас перейдем к, еще называемому, Active Record классу.

Добавление информации в БД используя Codeigniter.

Для того, чтобы добавить информацию в БД нам нужно передать необходимую информацию в БД, в нужную нам таблицу. Это можно сделать используя массивы. Помещаем информацию в массив и передаем этот массив со всеми элементами в функцию, которая добавит нужную информацию в нужную таблицу. Давайте посмотрим на контроллер:

function add_article()
{
     $data['title'] = "Пятая статья"; // название статьи храним в элементе массива data->title
     $data['text'] = "Если вам нужен Lorem Ipsum для серьёзного..."; // текст статьи храним в элементе массива data->text
     $data['date'] = "2011-12-23"; // дату статьи храним в элементе массива data->date
     $this->load->model('articles_model'); // загружаем модель
     $this->articles_model->add_article($data); // вызываем функцию добавления, которая находится в моделе articles_model и передаем весь массив
}

Важно, что элементы массива data должны называться также как и ячейки в таблице, в которую Вы хотите вставить информацию. То есть в данном случаем у нас есть таблица, в которой поля называются title, text, date.
Вот как выглядит функция добавления этой информации в БД. Это пишем в моделе (articles_model)

function add_article($data)
{
    $this->db->insert('articles',$data);
}

Принимаем массив с данными. Вставляем информацию в таблицу articles, вторым параметром указываем массив со всеми данными.

Адресная строка: http://localhost/cilessons/index.php/first/add_article

Редактирование информации в БД используя Codeigniter.

Для того, чтобы отредактировать информацию в БД нам нужно передать необходимую информацию в БД, в нужную нам таблицу и указать какую статью мы хотим отредактировать (условие where). Это можно сделать используя массивы. Помещаем информацию в массив и передаем этот массив со всеми элементами в функцию, которая отредактирует нужную статью.

Контроллер:

function edit_article()
{
     $data['title'] = 'Новое название пятой статьи'; // название статьи храним в элементе массива data->title
     $data['text'] = 'Текст';  // текст статьи храним в элементе массива data->text
     $data['date'] = '2011-12-31';  // дату статьи храним в элементе массива data->date
     $this->load->model('articles_model');  // загружаем модель
     $this->articles_model->edit_article($data); // вызываем функцию редактирования, которая находится в моделе articles_model и передаем весь массив
}

В моделе пишем такую функцию:

function edit_article($data)
{
     $this->db->where('id','5');  // редактируем статью у которой id=5
     $this->db->update('articles',$data); // передаем в нужную таблицу новую информацию и обновляем
}

Тут важно указать какую запись Вы хотите обновить.
Адресная строка: http://localhost/cilessons/index.php/first/edit_article

Удаление информации из БД используя Codeigniter.

Здесь не нужно передавать никаких массивов с данными, тут просто вызываем функцию удаления, в которой указано какую статью надо удалить из БД. Давайте удалим статью передавав параметр в нашу функцию. Данный параметр укажет какую статью надо удалить из БД.

Контроллер:

function del_article($id) // принимаем параметр, назовем его например id
{
      $this->load->model('articles_model'); // грузим модель
      $this->articles_model->del_article($id); // вызываем функцию удаления и передаем параметр id, в котором находится номер удаляемой статьи.
}

Модель:

function del_article($id) // приняли параметр
{
     $this->db->where('id',$id); // подставляем параметр в условие (например там 5)
     $this->db->delete('articles'); // удаляем запись с id=5 из таблицы articles
}

Чтобы удалить нужную статью, пишем в адресной строке: http://localhost/cilessons/index.php/first/del_article/5

Вот и все. Не забывайте указывать условие, какую именно статью нужно удалить. Иначе может произойти что-то очень печальное :)

Если урок Вам был полезен, нажмите на любую кнопку ниже— буду благодарен :) Всем удачи и следите за ходом событий;)

Комменты

  • Ну это вроде как понятно, а в форм action че писать?

    • Дмитрий Валак: 05-12-2013 в 21:31

      Контроллер/функцию которая будет обрабатывать данные из формы

  • Здравствуйте! Скажите пожалуйста, а как мне сделать так, чтобы заносить данные в БД через форму на сайте?)

    • Дмитрий Валак: 04-12-2013 в 21:08

      Здравствуйте.
      Создаете форму. Принимаете данные из формы таким образом $add[‘name’] = $this->input->post(‘name’); и т.д.
      Потом этот массив add со всеми значениями передаем в запрос добавления информации, например так: this->db->insert(‘table’, $add);
      Элементы массива add должны соответствовать названиям полей в бд.
      Как-то так)