Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/three.js/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 方法未被第三次调用_Php - Fatal编程技术网

Php 方法未被第三次调用

Php 方法未被第三次调用,php,Php,我有一个更新表中字段的方法。它用于更新三个表、发票、发票、项目和付款。所有三个表都有要更新的相同字段。当下面的代码运行时,multi_checked方法会在前两次运行,但不会在第三次运行,原因我也不清楚。有什么想法吗 方法调用: elseif (isset($_POST[$mod . '-del']) && count($check) > 0) { $state = multi_checked( $check, 'UPDATE ' .

我有一个更新表中字段的方法。它用于更新三个表、发票、发票、项目和付款。所有三个表都有要更新的相同字段。当下面的代码运行时,multi_checked方法会在前两次运行,但不会在第三次运行,原因我也不清楚。有什么想法吗

方法调用:

elseif (isset($_POST[$mod . '-del']) && count($check) > 0) {
    $state = multi_checked(
        $check,
        'UPDATE ' . $db['database'] . '.invoices SET deleted="Y"',
        EVENT_DEL,
        'Invoice [' . $c . '] deleted',
        'Please select at least one item',
        FALSE,
        'SELECT id FROM ' . $db['database'] . '.invoices'
    );
    $state = multi_checked(
        $check,
        'UPDATE ' . $db['database'] . '.payments SET deleted="Y"',
        EVENT_DEL,
        'Payment [' . $c . '] deleted',
        'Please select at least one item',
        TRUE,
        'SELECT id FROM ' . $db['database'] . '.payments',
        null,
        "id_invoice"
    );
    $state = multi_checked(
        $check,
        'UPDATE ' . $db['database'] . '.invoice_items SET deleted="Y"',
        EVENT_DEL,
        'Invoice Item [' . $c . '] deleted',
        'Please select at least one item',
        TRUE,
        'SELECT id FROM ' . $db['database'] . '.invoice_items',
        null,
        "id_invoice"
    );


} # Clear Export timestamps
多重检查方法描述如下:

function multi_checked(
    $check,
    $query,
    $event_type,
    $event_desc,
    $none = 'Please select at least one item',
    $redirect = TRUE,
    $meta_query = NULL,
    $success_msg = NULL,
    $field = "id"
) {
    global $db, $mod;

    $batch_count = count($check);
    $meta_data = NULL;

    if ($batch_count == 0) {
        add_msg($none);
        return (0);
    } else {
        $changed = 0;
        $ref = load_array('SELECT MAX(id) FROM ' . $db['database'] . '.eventlog'); # batch id
        foreach ($check As $c) {
            if ($meta_query != NULL) {
                $meta_data = load_array($meta_query . ' WHERE id' . $field . '="' . $c . '"');
                if ($meta_data != NULL) $meta_data = ' (' . $meta_data . ')';
            }
            $q = $query . ' WHERE ' . $field . '="' . $c . '"';
            $z = $query . ' WHERE ' . $field . '="' . $c . '"';
            $g = "asf";
            if (run_query($query . ' WHERE ' . $field . '="' . $c . '"') == 0) {
                eventlog($db['database'], $event_type, $mod, $c, uid(), '[Batch #' . $ref . '] ' . $event_desc . $meta_data, uname());
                $changed++;
            } else {
                eventlog($db['database'], $event_type, $mod, $c, uid(), '[Batch #' . $ref . '] FAIL: ' . $event_desc . $meta_data, uname(), FALSE, FALSE);
            }
        }
        # Check for errors
        if ($changed != $batch_count) {
            add_error($changed . ' of ' . $batch_count . ' items processed - you may need to check the system log for details');
        } # Success!
        else {
            $message = ($changed . ' item' . ($changed > 1 ? 's' : NULL) . ' processed successfully');
            if ($changed > 1) { # log batch summary
                @mysql_query("FLUSH QUERY CACHE");
                eventlog($db['database'], $event_type, $mod, 0, uid(), '[Batch #' . $ref . '] ' . $changed . ' records processed', uname());
            }
            # Redirect
            if ($redirect) {
                header('Location: ?m=' . $mod . '&changed=' . $changed . '&message=' . $success_msg);
                exit;
            } else {
                add_msg($message);
            }
        }
        return ($changed);
    }
}
对multi_check的第二次调用将$redirect参数设置为TRUE-因此函数重定向,防止脚本第三次调用函数