ホームページ > バックエンド開発 > PHPチュートリアル > 求助一段代码的执行结果输出代码编写

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

WBOY
リリース: 2016-06-06 20:46:48
オリジナル
1153 人が閲覧しました

下面是一段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),方便数据库操作

<code class="lang-php">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;
                }
        }
}
</code>
ログイン後にコピー
ログイン後にコピー

数组1

<code class="lang-php">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] =>
                )
        )
)
</code>
ログイン後にコピー
ログイン後にコピー

数组2

<code class="lang-php">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
)
</code>
ログイン後にコピー
ログイン後にコピー

回复内容:

下面是一段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),方便数据库操作

<code class="lang-php">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;
                }
        }
}
</code>
ログイン後にコピー
ログイン後にコピー

数组1

<code class="lang-php">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] =>
                )
        )
)
</code>
ログイン後にコピー
ログイン後にコピー

数组2

<code class="lang-php">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
)
</code>
ログイン後にコピー
ログイン後にコピー

<code class="lang-PHP"><?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));

</code>
ログイン後にコピー
関連ラベル:
php
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート