tp5 批量insert数据

前提:做一个功能,前台一个form表单不知道提交多少条数据,每条信息不一样的是公司名称,其余数据一样。

思路:将重复的数据先获取出来,传给data数组。然后再将前台form表单过来的数据,公司所有名称拿出来。然后去掉其余的数组元素,count剩余的元素个数,然后foreach,在循环中组建data模型。 另外我这个有个需求是根据公司名称去查询会员表该公司的id ,所以在循环中多了数据库查询操作



$request=Request::instance();

$data = array();
$pub_id = $request->post('pub_id');
$page_id = $request->post('pages');
$datas = $request->post();
foreach ($datas as $key => $value) {
if($value == '')
    {
    unset($datas[$key]);
    }
}
unset($datas['pub_id']);unset($datas['pages']);
$nums = count($datas);
// myLog($datas,__LINE__);die;
$datas = array_values($datas);
// myLog($datas,__LINE__);die;
$userinfo = Db::name('userinfo');
$pub_company = Db::name('pub_company');
for($i = 1; $i <= $nums; $i++){
    $where['unit_full_name'] = $datas[$i-1];
    $user_id = $userinfo->where($where)->field('user_id')->find()['user_id'];
    if(empty($user_id))
    {
           $data[]  = [
               'pub_id' => $pub_id,          
               'pages' => $page_id,         
               'company_inf' => $datas[$i-1],               
               'add_time'=>date('y-m-d h:i:s',time())
           ] ;
    }
    else
    {
           $data[]  = [
               'pub_id' => $pub_id,          
               'pages' => $page_id,         
               'company_inf' => $datas[$i-1],     
               'userid' => $user_id,      
               'add_time'=>date('y-m-d h:i:s',time())
           ] ;

    }

 }

   $result   =  $pub_company-> insertAll($data);
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值