
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, и его можно включить с помощью метода флажка.