PHP - Подсчитать элементы за последние 15 дней с интервалом времени - PullRequest
0 голосов
/ 17 июня 2020

Я пытаюсь подсчитать строки в зависимости от того, когда они были созданы.

Каждый день должен быть другим, но он просто возвращает мне 2 дня.

Например, 1 день a go он должен считать 2, 6, 8 (потому что общая сумма равна 2 плюс 6) и так далее. В базе данных есть дата, но после второго взгляда кажется, что она застряла.

Здесь код

<code>$dayLosses = array();
$daywins = array();
$dayTotal = array();
$addCounter = 1;
$counter2 = 2;
while($addCounter < 15){

    //losses
    $query = "SELECT * FROM `signals` WHERE userID = ? AND outcome = 1 AND created_at BETWEEN 
                DATE_SUB(DATE(NOW()), INTERVAL $counter2  DAY)
                    AND DATE_SUB(DATE(NOW()), INTERVAL 1 DAY) ";
    //counting losses
    $result = $pdo->prepare($query);
    $result->bindParam(1, $userID);
    if ($result->execute()) {
        $dayLosses[] = $result->rowCount();
    }

    $query = "SELECT * FROM `signals` WHERE userID = ? AND outcome = 2 AND created_at BETWEEN 
                DATE_SUB(DATE(NOW()), INTERVAL $counter2 DAY)
                  AND DATE_SUB(DATE(NOW()), INTERVAL $addCounter DAY) ";
    //counting winners
    $result = $pdo->prepare($query);
    $result->bindParam(1, $userID);
    if ($result->execute()) {
        $daywins[] = $result->rowCount();
    }

    $dayTotal[] = $day2Loss + $day2Wins;

    $counter2 += 1;
    $addCounter += 1;
}

echo '<pre>'; print_r($dayLosses); echo '
'; echo '
'; print_r($daywins); echo '
'; echo '
'; print_r($dayTotal); echo '
'; ?>

Вот результат

Array
(
    [0] => 2
    [1] => 1
    [2] => 0
    [3] => 0
    [4] => 0
    [5] => 0
    [6] => 0
    [7] => 0
    [8] => 0
    [9] => 0
    [10] => 0
    [11] => 0
    [12] => 0
    [13] => 0
)
Array
(
    [0] => 6
    [1] => 1
    [2] => 0
    [3] => 0
    [4] => 0
    [5] => 0
    [6] => 0
    [7] => 0
    [8] => 0
    [9] => 0
    [10] => 0
    [11] => 0
    [12] => 0
    [13] => 0
)
Array
(
    [0] => 8
    [1] => 8
    [2] => 8
    [3] => 8
    [4] => 8
    [5] => 8
    [6] => 8
    [7] => 8
    [8] => 8
    [9] => 8
    [10] => 8
    [11] => 8
    [12] => 8
    [13] => 8
)

Что я делаю не так?

1 Ответ

0 голосов
/ 17 июня 2020

Результат выше: массивы $ dayLosses = array (); и $ daywins = array ();?

Для чего предназначена эта строка: $ dayTotal [] = $ day2Loss + $ day2Wins ;? Я не могу найти эти переменные где-либо еще в вашем скрипте.

...