求助一段代碼的執行結果輸出代碼編寫

來源:互聯網
上載者:User
下面是一段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));
  • 聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

    如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.