2、导入数据
数据库
# 商品分类表
CREATE TABLE `shop_cat` (
`id` int(10) unsigned NOT NULL AUTO_INCREMENT COMMENT 'ID',
`pid` int(10) unsigned DEFAULT '0' COMMENT '父ID',
`name` varchar(50) DEFAULT NULL COMMENT '分类名',
`status` tinyint(1) unsigned DEFAULT '1' COMMENT '状态 1开启 0关闭',
PRIMARY KEY (`id`)
) ENGINE=MyISAM AUTO_INCREMENT=8 DEFAULT CHARSET=utf8mb4 COMMENT='分类表';
INSERT INTO `shop_cat` VALUES (1, 0, '女装', 1);
INSERT INTO `shop_cat` VALUES (2, 0, '男装', 1);
INSERT INTO `shop_cat` VALUES (3, 0, '孕产', 1);
INSERT INTO `shop_cat` VALUES (4, 1, '连衣裙', 1);
INSERT INTO `shop_cat` VALUES (5, 1, '牛仔裤', 1);
INSERT INTO `shop_cat` VALUES (6, 2, '衬衫', 1);
INSERT INTO `shop_cat` VALUES (7, 3, '睡衣', 1);
# 商品表
CREATE TABLE `shop_list` (
`id` int(10) unsigned NOT NULL AUTO_INCREMENT,
`cat_id` int(10) unsigned DEFAULT NULL COMMENT '分类ID',
`cat_fid` int(10) unsigned DEFAULT NULL COMMENT '分类父ID',
`title` varchar(200) NOT NULL COMMENT '商品标题',
`price` double(10,2) unsigned NOT NULL COMMENT '价格',
`img` varchar(200) NOT NULL COMMENT '商品图片',
`add_time` int(10) unsigned NOT NULL COMMENT '添加时间',
PRIMARY KEY (`id`)
) ENGINE=MyISAM AUTO_INCREMENT=1 DEFAULT CHARSET=utf8mb4 COMMENT='商品表';
index.php 导入页面
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>导出数据</title>
<link rel="stylesheet" href="layui/css/layui.css" rel="external nofollow" rel="external nofollow" >
</head>
<body>
<div style="text-align:center;">
<button type="button" class="layui-btn" id="up"><i class="layui-icon"></i>上传文件</button>
<a href="download.php" rel="external nofollow" rel="external nofollow" class="layui-btn layui-btn-danger"><i class="layui-icon"></i>示例下载</a>
</div>
<div id="log" style="text-align:center;">
</div>
</body>
</html>
<script src="layui/layui.js" charset="utf-8"></script>
<script>
layui.use('upload', function(){
var $ = layui.jquery
,upload = layui.upload;
upload.render({
elem: '#up'
,url: 'data.php'
,accept: 'file' //普通文件
,done: function(res){
if(res.code == 0){
for(var i=0;i<res.data.length;i++){
$("#log").append('<div>'+res.data[i]+'</div>');
}
}
}
});
})
</script>
导入功能
<?php
$file = $_FILES['file']['tmp_name'];
# 载入composer自动加载文件
require 'vendor/autoload.php';
# 载入方法库
require 'function.php';
# 创建读操作
$reader = PhpOfficePhpSpreadsheetIOFactory::createReader('Xlsx');
# 打开文件、载入excel表格
$spreadsheet = $reader->load($file);
# 获取活动工作薄
$sheet = $spreadsheet->getActiveSheet();
# 获取总列数
$highestColumn = $sheet->getHighestColumn();
# 获取总行数
$highestRow = $sheet->getHighestRow();
# 列数 改为数字显示
$highestColumnIndex = PhpOfficePhpSpreadsheetCellCoordinate::columnIndexFromString($highestColumn);
$log = [];
for($a=2;$a<$highestRow;$a++){
$title = $sheet->getCellByColumnAndRow(1,$a)->getValue();
$cat_fname = $sheet->getCellByColumnAndRow(2,$a)->getValue();
$cat_name = $sheet->getCellByColumnAndRow(3,$a)->getValue();
$price = $sheet->getCellByColumnAndRow(4,$a)->getValue();
$img = $sheet->getCellByColumnAndRow(5,$a)->getValue();
$cat_fid = find('shop_cat','id','name="'.$cat_fname.'"');
$cat_id = find('shop_cat','id','name="'.$cat_name.'"');
$data = [
'title' => $title,
'cat_fid' => $cat_fid['id'],
'cat_id' => $cat_id['id'],
'price' => $price,
'img' => $img,
'add_time' => time(),
];
$ins = insert('shop_list',$data);
if($ins){
$log[] = '第'.$a.'条,插入成功';
}else{
$log[] = '第'.$a.'条,插入失败';
}
}
echo json_encode(['code'=>0,'msg'=>'成功','data'=>$log]);