php使用for循环存储前端通过ajax传来数据的几个坑

后端是thinkphp,前端通过jquery ajax传递一组数据过去存储;
传出去的数据结构:

{
stop_id:1,
num:3,//不固定,实际下边也是根据这个新建的input组,然后再传出来的
AAA1:A1,
BBB1:B1,
CCC1:C1,
AAA2:A2,
BBB2:B2,
CCC2:C2,
AAA3:A3,
BBB3:B3,
CCC3:C3
}

mysql数据表:

id,stop_id,AAA,BBB,CCC

后端代码:

if (request()->isAjax()) {
	$result = '';
	//第一个坑,必须在for循环外部先定义,再在内部赋值,否则内部的$result会被销毁而无法被调用
	$num = input('post.num');
	//第二个坑,ajax内部的变量必须在内部赋值
	$stop_id = input('post.stop_id ');
	for ($i=1; $i<=$num; $i++) {
		$AAA = input('post.AAA'.$i);
		$BBB= input('post.AAA'.$i);
		$CCC= input('post.AAA'.$i);
		$data=[
			'stop_id' = stop_id ,
			'AAA' = $AAA,
			'BBB' = $BBB,
			'CCC' = $CCC
		];
		if($i == $num){
			$result = model(xxxx)->add($data);//最后一次执行时新建数据后赋值$result
			usleep(1000000);//第三个坑,延迟单位是微秒
			break;//不算坑,直接跳出,防止意外
		}
		model(xxxx)->add($data);//这里直接新建数据,但不赋值$result
		unset($data);//第四个坑,清空数组,防止下一个循环无法覆盖数据
	}
	if ($result == 1) {
      $this->success('successs');
    } else {
        $this->error($result);
    }
}

如果有小白朋友看到了,可以参考一下,
作为一个小白菜,这里坑了一下午才解决。

你可能感兴趣的:(php,php,for循环,填坑)