CodeIgniter — это легкая и мощная среда веб-приложений PHP с открытым исходным кодом, которая обеспечивает простую и элегантную платформу для создания полнофункциональных веб-приложений без дополнительных затрат на создание дорогостоящих повторно используемых компонентов. CodeIgniter широко используется, поскольку он основан на популярной модели: шаблон разработки контроллера представления (MVC). Будучи большим и простым для понимания, он имеет большое и активное сообщество пользователей, что делает его вторым среди самых популярных фреймворков. Некоторые функции, которые делают его чрезвычайно популярным выбором, включают в себя:
- Это настолько простой и беспроблемный процесс перехода с одного хостинга на другой, что делает его популярным выбором среди пользователей веб-разработки.
- Он имеет небольшой размер, что означает, что он легкий и имеет очень небольшие накладные расходы, что означает, что он обеспечивает высокую производительность, особенно по сравнению с другими фреймворками.
- Его также легко начать, поскольку он не требует настройки или требует очень небольшой настройки.
Иногда у нас есть неточные или устаревшие данные, которые необходимо удалить, чтобы сделать доступ к нашей базе данных более быстрым и легким для дальнейшего использования. Например, перемещение данных из календаря за предыдущий год в другой набор таблиц текущего года. Это можно сделать быстрее, если мы переместим или удалим ненужные или неточные данные, что также сократит связанные с этим бизнес-затраты.
Чтобы без проблем удалить несколько записей в CodeIgniter, мы можем использовать метод флажка. У вас есть два пути: -
- Либо вы можете установить каждый флажок записи, которая должна быть удалена.
- Или вы можете установить/снять все флажки, чтобы отметить или снять отметку сразу со всех строк и удалить их за один раз.
Шаги, необходимые для восходящего процесса удаления нескольких записей всего за несколько секунд из базы данных в CodeIgniter:
- Извлечение всех пользовательских данных из базы данных MYSQL и объединение их в таблицу HTML.
- Чтобы выбрать несколько записей, добавьте флажок с каждой из них.
- Чтобы выбрать или отменить выбор сразу всех записей, установите флажок в заголовке таблицы.
- Чтобы удалить все отмеченные строки в базе данных MYSQL, включите кнопку «Удалить».
- Первый процесс включает в себя создание таблицы базы данных для хранения данных пользователя. SQL создает таблицу в базе данных MYSQL, используя следующие шаги и команды.
Код может быть таким: -
CREATE TABLE `users` ( `id` int(11) NOT NULL AUTO_INCREMENT, `first_name` varchar(100) COLLATE utf8_unicode_ci NOT NULL, `last_name` varchar(100) COLLATE utf8_unicode_ci NOT NULL, `email` varchar(200) COLLATE utf8_unicode_ci NOT NULL, `phone` varchar(15) COLLATE utf8_unicode_ci NOT NULL, `created` datetime NOT NULL, `modified` datetime NOT NULL, `status` tinyint(1) NOT NULL DEFAULT '1' COMMENT '1=Active, 0=Deactive', PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
Контроллер (Users.php)
Далее используются две функции из пользовательского элемента управления Construct ( ) и Index ( ).
Construct() используется для загрузки пользовательской модели.
Index() используется
- Чтобы получить данные из базы данных, используйте функцию get Rows().
- Загрузить данные пользователя для просмотра.
Если пользователь хочет удалить строки и запрос отправлен
- Получите идентификатор удаляемых строк с помощью $_POST в PHP.
- Для проверки массив ID не должен быть пустым.
- Использование функции Delete() для удаления выбранных строк, указанных в массиве идентификаторов.
- И, наконец, сообщение для просмотра.
И код для него может быть таким: -
<?php defined('BASEPATH') OR exit('No direct script access allowed'); class Users extends CI_Controller { function __construct() { parent::__construct(); // Load user model $this->load->model('user'); } public function index(){ $data = array(); // If record delete request is submitted if($this->input->post('bulk_delete_submit')){ // Get all selected IDs $ids = $this->input->post('checked_id'); // If id array is not empty if(!empty($ids)){ // Delete records from the database $delete = $this->user->delete($ids); // If delete is successful if($delete){ $data['statusMsg'] = 'Selected users have been deleted successfully.'; }else{ $data['statusMsg'] = 'Some problem occurred, please try again.'; } }else{ $data['statusMsg'] = 'Select at least 1 record to delete.'; } } // Get user data from the database $data['users'] = $this->user->getRows(); // Pass the data to view $this->load->view('users/index', $data); } }
Модель (User.php)
Работа, связанная с базой данных, выполняется в этой модели, например: создание (), получение строк () и удаление ().
Php if ( !defined(‘BASEPATH’)) exit(‘Прямой доступ к скрипту не разрешен’);
class User extends CI_Model{ function __construct() { $this->tblName = 'users'; } /* * Fetch posts data from the database * @param id returns a single record if specified, otherwise all records */ function getRows($params = array()){ $this->db->select('*'); $this->db->from($this->tblName); //fetch data by conditions if(array_key_exists("where",$params)){ foreach ($params['where'] as $key => $value){ $this->db->where($key,$value); } } if(array_key_exists("order_by",$params)){ $this->db->order_by($params['order_by']); } if(array_key_exists("id",$params)){ $this->db->where('id',$params['id']); $query = $this->db->get(); $result = $query->row_array(); }else{ //set start and limit if(array_key_exists("start",$params) && array_key_exists("limit",$params)){ $this->db->limit($params['limit'],$params['start']); }elseif(!array_key_exists("start",$params) && array_key_exists("limit",$params)){ $this->db->limit($params['limit']); } if(array_key_exists("returnType",$params) && $params['returnType'] == 'count'){ $result = $this->db->count_all_results(); }else{ $query = $this->db->get(); $result = ($query->num_rows() > 0)?$query->result_array():FALSE; } } //return fetched data return $result; } /* * Delete data from the database * @param id array/int */ public function delete($id){ if(is_array($id)){ $this->db->where_in('id', $id); }else{ $this->db->where('id', $id); } $delete = $this->db->delete($this->tblName); return $delete?true:false; }
Просмотр (пользователи/index.php)
Чтобы увидеть диалоговое окно подтверждения удаления и интегрировать все функциональные возможности флажков, необходим jQuery, который должен быть включен в библиотеку.
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
Подтверждение удаления ( ) используется для проверки того, был ли отмечен хотя бы один флажок, а также для выдачи предупреждающего сообщения, если запись определенно хочет быть удалена.
Установите/отмените выбор ( ) все флажки за один раз с помощью jQuery.
<script> function delete_confirm(){ if($('.checkbox:checked').length > 0){ var result = confirm("Are you sure to delete selected users?"); if(result){ return true; }else{ return false; } }else{ alert('Select at least 1 record to delete.'); return false; } } $(document).ready(function(){ $('#select_all').on('click',function(){ if(this.checked){ $('.checkbox').each(function(){ this.checked = true; }); }else{ $('.checkbox').each(function(){ this.checked = false; }); } }); $('.checkbox').on('click',function(){ if($('.checkbox:checked').length == $('.checkbox').length){ $('#select_all').prop('checked',true); }else{ $('#select_all').prop('checked',false); } }); }); </script>
Пользователь может выбрать/отменить выбор нескольких строк и, соответственно, удалить несколько записей в приложении Codeigniter.
- Во-первых, данные извлекаются из базы данных.
- Затем выбираются несколько строк для удаления.
- Чтобы установить/снять все флажки, флажок устанавливается под заголовком таблицы.
- При нажатии кнопки удаления появляется диалоговое окно для подтверждения удаления.
- Выбранные записи удаляются после процесса подтверждения.
Display the status message --> <?php if(!empty($statusMsg)){ ?> <div class="alert alert-success"><?php echo $statusMsg; ?></div> <?php } ?> <!-- Users data list --> <form name="bulk_action_form" action="" method="post" onSubmit="return delete_confirm();"/> <table class="bordered"> <thead> <tr> <th><input type="checkbox" id="select_all" value=""/></th> <th>First Name</th> <th>Last Name</th> <th>Email</th> <th>Phone</th> </tr> </thead> <?php if(!empty($users)){ foreach($users as $row){ ?> <tr> <td align="center"><input type="checkbox" name="checked_id[]" class="checkbox" value="<?php echo $row['id']; ?>"/></td> <td><?php echo $row['first_name']; ?></td> <td><?php echo $row['last_name']; ?></td> <td><?php echo $row['email']; ?></td> <td><?php echo $row['phone']; ?></td> </tr> <?php } }else{ ?> <tr><td colspan="5">No records found.</td></tr> <?php } ?> </table> <input type="submit" class="btn btn-danger" name="bulk_delete_submit" value="DELETE"/> </form>
Вывод
Поскольку каждая база данных содержит несколько записей, и если пользователь хочет удалить одну — одну строку за раз, это может оказаться сложной задачей и потребует много времени с большим количеством ошибок.
Чтобы сэкономить ваше время и сделать код более удобным для пользователя, многократное удаление записей из нескольких строк — отличный процесс, который можно включить в приложение CodeIgniter, и его можно включить с помощью метода флажка.