【问题标题】:How to insert multiple value data in codeigniter如何在codeigniter中插入多值数据
【发布时间】:2015-05-25 11:23:06
【问题描述】:

在我的选择选项中,我有两个数字的值示例 value="163, 162"

我有一个模型函数,可以在其中插入第一个值编号,即 category id 163

变量转储

array(2) { [0]=> string(3) "163" [1]=> string(4) " 162" }

问题:我需要添加parent_id = " . $this->db->escape($category['parent_id']) . ",但不确定如何获取第二个值编号并将其设置为parent_id = " . $this->db->escape($category['parent_id']) . " 父ID 将是示例162

模型函数

public function page_update($page_id, $data) {
    $this->db->query("DELETE FROM " . $this->db->dbprefix . "page_to_category WHERE page_id = '" . (int)$page_id . "'");

    if (isset($data['categories'])) {
        foreach ($data['categories'] as $category) {

            //$data_sample = explode(',', $category['category_id']);
            //var_dump($data_sample);
            //exit;

            $this->db->query("INSERT INTO " . $this->db->dbprefix . "page_to_category SET 
            page_id = '" . (int)$page_id . "', 
            category_id = " .  $this->db->escape($category['category_id']) . "
            ");
        }
    }
}

查看

<div class="form-group">
    <label class="col-sm-2">Category</label>
    <div class="col-sm-10">
        <select class="form-control" name="categories[1][category_id]">
            <option value="0">-- No Category Required --</option>
            <?php foreach ($categories as $category) {?>
            <?php if ($category['category_id'] == $category_id) {?>
            <option value="<?php echo $category['category_id'];?>, <?php echo $category['parent_id'];?>" selected="selected">
            <?php echo $category['name'];?></option>
            <?php } else { ?>
            <option value="<?php echo $category['category_id'];?>, <?php echo $category['parent_id'];?>"><?php echo $category['name'];?></option>
            <?php }?>
            <?php }?>
        </select>
    </div>
</div>

【问题讨论】:

  • 您的实际问题是什么,您能详细说明一下吗?你想用逗号分隔值做什么?
  • 当我使用explode时我无法获得第二个号码value="163, 162" 我需要能够获得第二个号码
  • 为什么不使用 CI insert 方法?

标签: codeigniter codeigniter-3


【解决方案1】:

使用 Codeigniter 语法非常简单且可取,如果您想看一下,此代码与 @Arcanix 回答的相同,但使用 CI Active Record 语法,

public function page_update($page_id, $data)
{
    $this->db->delete('page_to_category', array('page_id' => (int)$page_id)); 

    if (isset($data['categories']))
    {
        foreach ($data['categories'] as $category)
        {
            $data_sample = array_map("trim",explode(',', $category['category_id']));

            $insert_data = array(
                            'page_id' => (int)$page_id,
                            'category_id' => $this->db->escape($data_sample[0])
                        );

            $this->db->insert('page_to_category', $insert_data); 
        }
    }
}

【讨论】:

    【解决方案2】:

    答案是这样的:

    public function page_update($page_id, $data) {
        $this->db->query("DELETE FROM " . $this->db->dbprefix . "page_to_category WHERE page_id = '" . (int)$page_id . "'");
    
        if (isset($data['categories'])) {
            foreach ($data['categories'] as $category) {
    
                $data_sample = array_map("trim",explode(',', $category['category_id']));
    //Here $data_sample[0] will always be your category id and $data_sample[1] will be your parent id
    
    
                $this->db->query("INSERT INTO " . $this->db->dbprefix . "page_to_category SET 
                page_id = '" . (int)$page_id . "', 
                category_id = " .  $this->db->escape($data_sample[0]) . "
                ");
            }
        }
    }
    

    这里 $data_sample[0] 将始终是您的类别 ID,$data_sample[1] 将是您的父 ID

    【讨论】:

      【解决方案3】:

      如果你想做多个插入,你可以用活动记录来做。首先创建要插入的数据的array,然后使用insert_batch方法

      $insertdata = array(
         array(
            'email' => 'email' ,
            'name' => 'My Name' ,
            'date' => 'My date'
         ),
         array(
            'email' => 'some data' ,
            'name' => 'some data' ,
            'date' => 'some data '
         )
      );
      $this->db->insert('mytable', $insertdata); 
      

      您可以从这里获得更多信息Insert methods used in CodeIgniter

      【讨论】:

        猜你喜欢
        • 2015-07-02
        • 2019-12-27
        • 1970-01-01
        • 2016-04-04
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-12-31
        • 2021-03-06
        相关资源
        最近更新 更多