如何使用 codeigniter 动态创建列

Posted

技术标签:

【中文标题】如何使用 codeigniter 动态创建列【英文标题】:How to create columns dynamically using codeigniter 【发布时间】:2020-07-17 13:22:18 【问题描述】:
public function addDynFields()

    $checkedfileds = $_POST['CheckedFileds'];
    $qry = "ALTER TABLE `pm1asset_dynamic_fields` ";
    //echo $qry;die;
    foreach ($checkedfileds as $key => $value) 
    
        $dynflds = strtolower($value);
        $dynclmns = 'add_to'.'_'.$dynflds;
        if ($value == 'Title') 
        
             $qry .= "ADD COLUMN `".$dynclmns."` int(11) NOT NULL";
         
        else 
        
            $qry .= "ADD COLUMN `".$dynclmns."` varchar(255) NOT NULL";
        

        // use (;) for the last row, otherwise use (,)
        if ($key === key($checkedfileds)) 
        
            $qry .= ",";
         
        else 
        
            $qry .= ";";
        
   
   end($checkedfileds);
   $this->db->query($qry);

这里我有一些代码可以使用codeigniter根据选中的复选框动态创建列,我尝试了这种方法,当我选中两个复选框时它工作正常,但是对于单个复选框它不起作用,当我点击两个复选框时它只是在表中添加..我不知道为什么。谁能帮帮我吗。任何帮助都将不胜感激。

【问题讨论】:

【参考方案1】:

这条线有问题。

if ($key === key($checkedfileds)

具体原因我也不知道,试了几种方法here。

我的解决办法是

$n = count($checkedfileds);
$i = 0;
foreach ($checkedfileds as $key => $value) 

//and

if(++$i === $n) 
//if ($key === key($checkedfileds)) 

【讨论】:

感谢您的回复先生,它是数组格式(Array([0]=>Array([0]=>Tile)))

以上是关于如何使用 codeigniter 动态创建列的主要内容,如果未能解决你的问题,请参考以下文章

使用 Codeigniter 以表格形式填充动态数据

如何在 Codeigniter 中插入动态数据?

使用 codeigniter 创建基于级别的动态菜单

在 Flutter 中动态创建一列行的好方法是啥

如何使用 .htaccess 在 codeigniter 中实现动态子域?

使用 CODEIGNITER 的动态 php 网站