recherche

Maison  >  Questions et réponses  >  le corps du texte

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

下面是一段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中文网PHP中文网2818 Il y a quelques jours333

répondre à tous(1)je répondrai

  • 高洛峰

    高洛峰2017-04-10 14:44:54

    <?php 
    
    $result = array();
    
    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;
    
        $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));
    
    

    répondre
    0
  • Annulerrépondre