作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我想使用 codeigniter 从 Excel 中插入数据,但我发现有些事情对我来说很困难。当我上传文件时,主键中有一些数据双倍。我尝试在上传之前先检查它
$cek=$this->m_admin->get_redudant($data['cells'][$i][2]);
if ($cek==0) {
$this->m_admin->add($dataexcel);
redirect('home','refresh');
}
else{
echo "something wrong";
}
这里是函数上传文件:
function do_upload(){
$config['upload_path'] = './temp_upload/';
$config['allowed_types'] = 'xls';
$this->load->library('upload', $config);
if ( ! $this->upload->do_upload())
{
$data = array('error' => $this->upload->display_errors());
}
else
{
$data = array('error' => false);
$upload_data = $this->upload->data();
$this->load->library('excel_reader');
$this->excel_reader->setOutputEncoding('CP1251');
$file = $upload_data['full_path'];
$this->excel_reader->read($file);
error_reporting(E_ALL ^ E_NOTICE);
$data = $this->excel_reader->sheets[0] ;
$dataexcel = Array();
$i=0;
for ($i = 1; $i <= $data['numRows']; $i++) {
if($data['cells'][$i][1] == '') break;
$dataexcel[$i-1]['nip'] = $data['cells'][$i][2];
$dataexcel[$i-1]['nama'] = $data['cells'][$i][1];
$dataexcel[$i-1]['nipbr'] = $data['cells'][$i][3];
$dataexcel[$i-1]['tempat'] = $data['cells'][$i][4];
$dataexcel[$i-1]['lahir'] = $data['cells'][$i][5];
$dataexcel[$i-1]['temp_kerja'] = $data['cells'][$i][6];
}
delete_files($upload_data['file_path']);
$cek=$this->m_admin->get_redudant($data['cells'][$i][2]);
if ($cek==0) {
$this->m_admin->add($dataexcel);
redirect('home','refresh');
}
else{
echo "something wrong";
}
}
}
我想操作主键中的数据。如果数据存在,我会在id的末尾随机添加数据
else{
$x = rand(1, 1000);
$dataexcel[$i-1]['nip'] = $data['cells'][$i][2]."$x";
}
但是不行,我该怎么办..
最佳答案
在这行代码中:
$x = rand(1, 1000);
如果数据存在,你可以定义一个全局计数器和增量:
else {
$counter += 1;
$dataexcel[$i-1]['nip'] = (int)$data['cells'][$i][2].$counter;
}
关于php - 上传 Excel Codeigniter 错误双主键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30270520/
我是一名优秀的程序员,十分优秀!