欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  后端开发

求助一段代码的执行结果输出代码编写

程序员文章站 2022-04-15 21:45:29
...
下面是一段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));

相关标签: php