下面是一段php代碼,主要功能是操作資料庫,但是是根據$new_data數組(數組1)進行資料庫操作,所以每次都會進行多次資料庫操作
下面是$new_data數組(數組1)檔案內容。
需要完成的結果是程式迴圈執行完成後能判斷那一處操作資料庫失敗,哪一處成功。程式會在迴圈內執行多次資料庫操作,輸出結果為全部成功輸出{"ok":true},完全失敗{"ok":false}部分失敗(詳細輸出部位比如{"del":false,"del_err":$u_id|$tasw_id,"up":false,"up_err":$u_id|$tasw_id}
請注意迴圈內會執行多次刪除,更新,插入資料庫操作,當然可重寫代碼,但是數組格式固定,$new_data數組(數組1)在執行到$u_id=$res['u_id'];會產生以下$res數組(數組2),方便資料庫操作
foreach($new_data as $key){ $res = array(); foreach ($key as $itm) { foreach ($itm as $it=>$valu) { $res[Shortstr2($it)] = $valu; } } $u_id=$res['u_id']; $res['tasw_id']=$tasw_id; if($tasw_p =='x'){ //執行刪除操作 $tasw_u_id=substr($e[0],1,strlen($e[0])); if(!db_del($tasw_id,$tasw_u_id)){ $tasw_err['d_err']=false; }else{ $tasw_err['d_ok']=true; } } $chk_u_id=$db->FirstValue("SELECT COUNT(*) FROM {$tbi} WHERE u_id='{$u_id}' and t_id='{$tasw_id}'"); if($chk_u_id>0){ //更新 unset($res['u_id']); if(!$db->AutoExecute($tbi,$res,'UPDATE'," u_id='{$u_id}' and tree_id='{$tasw_id}'")){ $tasw_err['u_err']=false; }else{ $tasw_err['u_ok']=true; } }else{ //插入 if(!$db->AutoExecute($tbi,$res)){ $tasw_err['i_err']=false; }else{ $tasw_err['i_ok']=true; } }}
數組1
Array( [VLZC9] => Array ( [0] => Array ( [i] => VLZC9 [^] => ASRWE [g] => m [l] => 12 ) [1] => Array ( [i] => VLZC9 [p] => 2 ) ) [FQE10] => Array ( [0] => Array ( [i] => FQE10 [^] => ASRWE [g] => f [s] => VLZC9 [l] => 12 ) [1] => Array ( [i] => FQE10 [p] => 1 ) ) [ASRWE] => Array ( [0] => Array ( [i] => ASRWE [m] => FQE10 [f] => VLZC9 ) ) [WEESA] => Array ( [0] => Array ( [i] => WEESA [x] => ) ))
數組2
Array( [u_id] => VLZC9 [s_s] => ASRWE [g] => m [l] => 12 [p] => 2)Array( [u_id] => FQE10 [s_s] => ASRWE [g] => f [s] => VLZC9 [l] => 12 [p] => 1)Array( [u_id] => ASRWE [m] => FQE10 [f] => VLZC9)
回複內容:
下面是一段php代碼,主要功能是操作資料庫,但是是根據$new_data數組(數組1)進行資料庫操作,所以每次都會進行多次資料庫操作
下面是$new_data數組(數組1)檔案內容。
需要完成的結果是程式迴圈執行完成後能判斷那一處操作資料庫失敗,哪一處成功。程式會在迴圈內執行多次資料庫操作,輸出結果為全部成功輸出{"ok":true},完全失敗{"ok":false}部分失敗(詳細輸出部位比如{"del":false,"del_err":$u_id|$tasw_id,"up":false,"up_err":$u_id|$tasw_id}
請注意迴圈內會執行多次刪除,更新,插入資料庫操作,當然可重寫代碼,但是數組格式固定,$new_data數組(數組1)在執行到$u_id=$res['u_id'];會產生以下$res數組(數組2),方便資料庫操作
foreach($new_data as $key){ $res = array(); foreach ($key as $itm) { foreach ($itm as $it=>$valu) { $res[Shortstr2($it)] = $valu; } } $u_id=$res['u_id']; $res['tasw_id']=$tasw_id; if($tasw_p =='x'){ //執行刪除操作 $tasw_u_id=substr($e[0],1,strlen($e[0])); if(!db_del($tasw_id,$tasw_u_id)){ $tasw_err['d_err']=false; }else{ $tasw_err['d_ok']=true; } } $chk_u_id=$db->FirstValue("SELECT COUNT(*) FROM {$tbi} WHERE u_id='{$u_id}' and t_id='{$tasw_id}'"); if($chk_u_id>0){ //更新 unset($res['u_id']); if(!$db->AutoExecute($tbi,$res,'UPDATE'," u_id='{$u_id}' and tree_id='{$tasw_id}'")){ $tasw_err['u_err']=false; }else{ $tasw_err['u_ok']=true; } }else{ //插入 if(!$db->AutoExecute($tbi,$res)){ $tasw_err['i_err']=false; }else{ $tasw_err['i_ok']=true; } }}
數組1
Array( [VLZC9] => Array ( [0] => Array ( [i] => VLZC9 [^] => ASRWE [g] => m [l] => 12 ) [1] => Array ( [i] => VLZC9 [p] => 2 ) ) [FQE10] => Array ( [0] => Array ( [i] => FQE10 [^] => ASRWE [g] => f [s] => VLZC9 [l] => 12 ) [1] => Array ( [i] => FQE10 [p] => 1 ) ) [ASRWE] => Array ( [0] => Array ( [i] => ASRWE [m] => FQE10 [f] => VLZC9 ) ) [WEESA] => Array ( [0] => Array ( [i] => WEESA [x] => ) ))
數組2
Array( [u_id] => VLZC9 [s_s] => ASRWE [g] => m [l] => 12 [p] => 2)Array( [u_id] => FQE10 [s_s] => ASRWE [g] => f [s] => VLZC9 [l] => 12 [p] => 1)Array( [u_id] => ASRWE [m] => FQE10 [f] => VLZC9)
$valu) { $res[Shortstr2($it)] = $valu; } } $u_id = $res['u_id']; $res['tasw_id'] = $tasw_id; $tasw_err = array(); if ($tasw_p === 'x') { //執行刪除操作 $tasw_u_id = substr($e[0], 1, strlen($e[0])); if (!db_del($tasw_id,$tasw_u_id)) { $tasw_err['del'] = false; $tasw_err['del_err'] = sprintf('%d|%d', $u_id, $tasw_id); } } $chk_u_id=$db->FirstValue("SELECT COUNT(*) FROM {$tbi} WHERE u_id='{$u_id}' and t_id='{$tasw_id}'"); if($chk_u_id>0){ //更新 unset($res['u_id']); if (!$db->AutoExecute($tbi,$res,'UPDATE'," u_id='{$u_id}' and tree_id='{$tasw_id}'")) { $tasw_err['up'] = false; $tasw_err['u_err'] = sprintf('%d|%d', $u_id, $tasw_id); } }else{ //插入 if(!$db->AutoExecute($tbi,$res)){ $tasw_err['in'] = false; $tasw_err['i_err'] = sprintf('%d|%d', $u_id, $tasw_id); } } if (!empty($tasw_err)) { $result[] = $tasw_err; }}if (empty($result)) { $result = array( 'ok' => true, );} elseif (count($result) === count($new_data)) { $result = array( 'ok' => false, );}die(json_encode($result));