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