【问题标题】:How to create columns dynamically using codeigniter如何使用 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根据选中的复选框动态创建列,我尝试了这种方法,当我选中两个复选框时它工作正常,但是对于单个复选框它不起作用,当我点击两个复选框时它只是在表中添加..我不知道为什么。谁能帮帮我吗。任何帮助都将不胜感激。

【问题讨论】:

    标签: php html mysql sql 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)))
    猜你喜欢
    • 2014-07-08
    • 2015-10-09
    • 2011-11-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-01-30
    • 1970-01-01
    • 2015-11-06
    相关资源
    最近更新 更多