【问题标题】:inserting array with Codeigniter active records使用 Codeigniter 活动记录插入数组
【发布时间】:2014-12-15 20:41:46
【问题描述】:

我有一个带有复选框值和 id 值的数组。复选框可以有多个值,否则 id 只有一个。我的数组是$data2,print_r:

Array ( 
  [checkbox] => Array ( 
     [0] => 1 
     [1] => 2 
     [2] => 3 
     [3] => 4 
     [4] => 8 
     [5] => 9 
     [6] => 10 
     [7] => 21 
  ) 
  [id] => 8 
)

模型中的代码是

function checkboxes($data2)
    {
        foreach($data2->result() as $row)
        {
            $data= array(
                  'story'=> $row->checkbox,
                  'id'=>$row->id
                );
               $this->db->insert('stories_to_categories',$data);
        }

    }

问题是因为我在数组中有数组,有人可以帮我将此代码插入数据库吗?

我也想插入相同数量的 id 和复选框,例如 3 个 id 值为 1 和 3 个复选框值

【问题讨论】:

  • 您必须将数据变量插入数据库中,我是对的,所以第二个是错误的,因为您将值存储在数据变量中,并且您将整个对象 data2 传递给插入函数,即错了
  • 这没有任何意义。什么是 $data2 ?为什么它有一个 result() 我在你的原始数组中没有看到。
  • 让我们更加专注,我正在编辑问题以便更好地理解 ChrisG,你同意吗
  • i print_r 数据数组哪里有问题,你看结构
  • 好的,你看到的错误是什么

标签: php arrays codeigniter


【解决方案1】:

这是一个虚拟答案,它将清除您的概念,即当您使用多维时,首先如何在 codeigniter 中锻炼多维数组,因此您需要一个键来跟踪您的记录,哪个记录属于哪个键,所以它可以是到目前为止,对获取值很有帮助,我已经专门为您创建了一个简单的虚拟程序,并且也在您的代码中工作过,所以您可能会喜欢我的努力,并且我希望您的问题能够得到解决。另外请查看 php 手册和文档这将使您更清楚地了解多维数组Multidimensional array documentation 以及我使用函数sizeof() 此函数用于测量对象的大小,无论是它自己创建的对象还是它有助于测量的数据库对象这里是文档链接继续检查我们如何使用sizeof documentation

这是虚拟代码。

$section = array( 'Clients'=>array('pepsi','cocacola','sevenup'),
    'Services'=>array('Web Design','Graphic Design','DataMigration'),
    'Techonologies'=>array('codeigniter','postgresql','ubuntu')
    );  

      $i=0;
      foreach($section as $key => $row)
      {
          //taking up specific value
          echo $section['Techonologies'][0];
          echo '<pre>';
          //checking the size of the key in array Clients is a key and it has 3 values
          while($i<sizeof($row))
          {
              echo $row[$i].'<br/>';
              $i++; 
          }
          $i=0;
        echo '</pre>';
      }

         echo '<pre>';
          print_r($section);
          echo '</pre>';

    }

这是你的代码,我希望它可以帮助你摆脱麻烦。

function checkboxes($data2)
    {
        $i=0;
        $data=$data2->result();
        foreach($data as $key => $row)
        {
            while($i<sizeof($row))
            {
            $data= array(
                  'story'=> $row[$i],
                  'id'=>$data['id'][0]
                );
               $this->db->insert('stories_to_categories',$data);
               $i++;
            }
        }

    }

【讨论】:

    猜你喜欢
    • 2011-09-28
    • 1970-01-01
    • 2014-04-05
    • 2011-03-22
    • 1970-01-01
    • 2012-12-06
    • 1970-01-01
    • 2023-03-06
    • 1970-01-01
    相关资源
    最近更新 更多