我有一个带有10个不同输入字段的表单,可以按任意顺序追加。
下面的代码来获取数据:
$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
在添加表单时,数据未按提及的顺序插入。
谢谢
答案 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);
}