Utilisez Tp pour supprimer des colonnes

炎欲天舞
Libérer: 2023-03-14 16:48:01
original
1771 Les gens l'ont consulté

J'ai publié un essai sur la suppression de colonnes il y a quelque temps. La fonction implémentée à cette époque était de supprimer une information. Cette fois, je supprimerai des colonnes par lots.

Ce que nous devons obtenir est l'effet suivant :

Après avoir sélectionné le bouton de suppression par lots, vous pouvez sélectionner toutes les colonnes de la page. Il s'agit de l'implémentation de la page front-end. Je n'entrerai pas dans les détails ici. Passons directement au sujet : la fonction de suppression par lots.

1. Il y a aussi un petit point ici sur la page frontale, c'est-à-dire que la valeur du nom de la zone de sélection doit se voir attribuer un tableau d'identifiant, et la valeur est l'identifiant. de la colonne.

2. Nous écrivons une méthode de suppression par lots distincte dans le contrôleur


public function privilege_bdel(){
        $ids = I('ids');
        $pri = D('privilege');
        $ids = implode(',', $ids);
        if($ids){
            if($pri->delete($ids)){
                $this->success('批量删除栏目成功!',U('Privilege/privilege_lst'));
            }else{
                $this->error('批量删除栏目失败,请重试!');
            }
        }else{
            $this->error('未选中任何内容,请重试!');
        }
    }
Copier après la connexion

C'est le résultat de nos options vidées. C'est également la base sur laquelle nous pouvons juger si la suppression est une suppression unique ou une suppression par lots. Si options[where][id] est un tableau, cela signifie que c'est le cas. est effectué. Il s’agit d’une suppression par lots, sinon il s’agit d’une suppression unique.

3. Modification du constructeur avant suppression dans le modèle


public function _before_delete($options){
        //批量删除
        if(is_array($options['where']['id'])){
            $arr = explode(',', $options['where']['id'][1]);
            $sonpri = array();
            foreach ($arr as $k => $v) {
                $sonpri2 = $this->childid($v);
                $sonpri = array_merge($sonpri,$sonpri2);
            }
            $sonpri = array_unique($sonpri);
            $chilrenids = implode(',', $sonpri);
        }else{//单个删除
            $chilrenids =$this->childid($options['where']['id']);
            $chilrenids = implode(',', $chilrenids);
        }
        if($chilrenids){
            $this->execute("delete from ed_privilege where id in($chilrenids)");
        }
    }
Copier après la connexion

Convertir la chaîne passée sous forme de tableau sans virgules La stocker dans $arr , créez un tableau vide $sonpri, puis parcourez-le avec foreach. Ici, recherchez d'abord tous les ID de sous-colonne (la fonction childid sera utilisée), stockez-les dans le tableau $sonpri2, puis fusionnez $sonpri et $sonpri2 dans un tableau. , utilisez la fonction array_merge() pour terminer, afin que nous puissions obtenir les ID de toutes les sous-colonnes, mais il y aura de nombreux ID en double dans le groupe d'ID que nous avons obtenu, nous devons donc ici également effectuer une opération de duplication. , en utilisant la fonction array_unique(). Enfin, divisez à nouveau le tableau pour obtenir la chaîne d'identification, puis supprimez-la et vous avez terminé.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!