在php codeigniter中按发布顺序排列数组的发布

时间:2018-10-09 10:28:37

标签: php arrays codeigniter

我有一个带有10个不同输入字段的表单,可以按任意顺序追加。

示例:附件图片Form

下面的代码来获取数据:

$news['paragraph'] = $this->input->post('paragraph');
$news['sub_heading'] = $this->input->post('sub_heading');       
$news['blurb'] = $this->input->post('blurb');       
$news['gallery_image'] = $this->input->post('gallery_image');       
$postdescription = $this->input->post('postdescription');
$news['pd_output'] = preg_replace('/(<[^>]+) style=".*?"/i', '$1', $postdescription);   
$news['youtube_url'] = $this->input->post('youtube_url');       
$news['caption'] = $this->input->post('caption');       
$news['facebook'] = $this->input->post('facebook');
$news['twitter'] = $this->input->post('twitter');       
$news['instagram'] = $this->input->post('instagram');
$empty_data = array_filter($news);
$keys = array_keys($news_array);
    foreach($news_array as $key => $value){ 
        foreach($value as $val){
            $data_two = array( 
                'array_key'     => $key,
                'content'       => $val,
                'news_id'       => $this->input->post('object_id'),
                'created_on'    => date("Y-m-d"),
            );
            $this->db->insert('tbl_news_content',$data_two);
        }
    }   

在foreach循环中获取类似的数组

[paragraph] => Array
    (
        [0] => 1
        [1] => 2
    )

[sub_heading] => Array
    (
        [0] => 1
        [1] => 2
    )

我从数组中获取键和值;但是我希望我的数据在添加表单时保持原样。

段 副标题 图片 段 段 图片

我有一张3列的桌子

id 键名 内容

Key_name的值将为Key 内容的价值就是关键的价值

问题是数据插入为

id key_name内容 1段1 2第2段 3副标题1 4 sub_heading 2

在添加表单时,数据未按提及的顺序插入。

谢谢

2 个答案:

答案 0 :(得分:0)

我假设这是您要实现的目标,并且还假设id列是INT PRIMARY KEY AUTO_INCREMENT:

foreach ($news as $key => $value) {

    $sql = sprintf('INSERT INTO your_table (key_name, content) 
        VALUES("%s", "%s")',
        $key, $value
    );
    //execute query in loop

}

答案 1 :(得分:0)

感谢sietse85查看代码并竭尽所能回答我的问题。我已经通过在$ x之前添加了每个字段的输入名称,并在之前添加了“-”和爆炸来更改了每个字段的输入名称,然后在插入之前将其删除。

这是帮助别人的代码。

    $data = $this->input->post();
    $objectId = $data['object_id'];
    unset($data['which_ever_field']);
    foreach($data as $key => $value){
        $exp = explode("-",$key);
        $data_two = array(
            'array_key'     => $exp[0],
            'content'       => $value,
            'news_id'       => $objectId,
        );
        $this->db->insert('tbl_news_content',$data_two);                    
    }