天天看點

php使用for循環存儲,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);

}

}

如果有小白朋友看到了,可以參考一下,

作為一個白菜,這裡坑了一下午才解決。