Я получаю то, что кажется бесконечным циклом и не могу понять, почему - PHP / WordPress - PullRequest
0 голосов
/ 10 сентября 2018

Я бегу через несколько отдельных идентификаторов пользователя (около 147 из них, извлеченных из таблицы с множеством дубликатов) с циклом foreach, а затем при получении, используя их для получения дополнительных сведений о пользователе. Затем я помещаю эти детали в массив, чтобы перенести их в мой JavaScript.

По какой-то причине результат, который я получаю из массива, выглядит как бесконечный цикл, который завершился где-то в процессе.

Вот пример:

enter image description here

Это код, который я сейчас использую:

public function payments_rt_search() {
    global $wpdb;

    $date1 = $_POST['date1'];
    $date2 = $_POST['date2'];
    $threshold = intval($_POST['threshold']);

    $results = $wpdb->get_results( "SELECT DISTINCT vendor_id FROM {$wpdb->prefix}wcpv_commissions WHERE order_date BETWEEN '".$date1."'  AND '".$date2."'");

    $past_threshold_users = [];
    // echo json_encode($results);
    // wp_die();
    foreach ($results as $user_R) {
        $total_commissions = $wpdb->get_results( "SELECT SUM(product_commission_amount) AS TotalCommissions FROM {$wpdb->prefix}wcpv_commissions WHERE vendor_id = ".$user_R->vendor_id);
        $total_commission = 0;
        foreach($total_commissions as $total_commission_res)
        {
            $total_commission = $total_commission_res->TotalCommissions;
        }
        if ($total_commission >= $threshold)
        {
            $res2 = $wpdb->get_results( "SELECT * FROM {$wpdb->prefix}wcpv_commissions WHERE vendor_id = ".$user_R->vendor_id." LIMIT 1");
            // echo json_encode($res2[0]);
            // wp_die();
            //Add user details to array
            $user_deets = $res2[0];
            $user_arr = array(
                'vendor_id' => $user_deets->vendor_id,
                'vendor_name' => $user_deets->vendor_name,
                'paypal_email' => '',
                'amount' => $total_commission,
                'currency' => '$',
                'commission_status' => $user_deets->commission_status
            );
            $past_threshold_users[] = $user_arr;
            // echo json_encode($user_arr);
            // wp_die();                
        }
        else
        {
            continue;
        }
        echo json_encode($past_threshold_users);
    }

    //echo json_encode($results);

    wp_die();
}

1 Ответ

0 голосов
/ 10 сентября 2018

Попробуйте этот код

У меня есть этот код echo json_encode($past_threshold_users); после цикла foreach.

    public function payments_rt_search() {
        global $wpdb;

        $date1 = $_POST['date1'];
        $date2 = $_POST['date2'];
        $threshold = intval($_POST['threshold']);

        $results = $wpdb->get_results( "SELECT DISTINCT vendor_id FROM {$wpdb->prefix}wcpv_commissions WHERE order_date BETWEEN '".$date1."'  AND '".$date2."'");

        $past_threshold_users = [];
        // echo json_encode($results);
        // wp_die();
        foreach ($results as $user_R) {
            $total_commissions = $wpdb->get_results( "SELECT SUM(product_commission_amount) AS TotalCommissions FROM {$wpdb->prefix}wcpv_commissions WHERE vendor_id = ".$user_R->vendor_id);
            $total_commission = 0;
            foreach($total_commissions as $total_commission_res)
            {
                $total_commission = $total_commission_res->TotalCommissions;
            }
            if ($total_commission >= $threshold)
            {
                $res2 = $wpdb->get_results( "SELECT * FROM {$wpdb->prefix}wcpv_commissions WHERE vendor_id = ".$user_R->vendor_id." LIMIT 1");
                // echo json_encode($res2[0]);
                // wp_die();
                //Add user details to array
                $user_deets = $res2[0];
                $user_arr = array(
                    'vendor_id' => $user_deets->vendor_id,
                    'vendor_name' => $user_deets->vendor_name,
                    'paypal_email' => '',
                    'amount' => $total_commission,
                    'currency' => '$',
                    'commission_status' => $user_deets->commission_status
                );
                $past_threshold_users[] = $user_arr;
                // echo json_encode($user_arr);
                // wp_die();                
            }
            /*else
            {
                continue;
            }   */     
        }

        echo json_encode($past_threshold_users);
        //echo json_encode($results);

        wp_die();
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...