如何在while循环中调用函数

时间:2018-06-28 05:58:44

标签: php mysql

我有一个功能,可以计算周日击中的小时数。 我的问题是,当我从数据库中获取多行时,我想通过该函数使用它们并计算它们的总和。

function päällekkäin_int_viikonpäivä($a_alku, $a_loppu, $viikonpäivä, $b_alku_klo = "00:00", $b_loppu_klo = "24:00") {
if (!in_array($viikonpäivä, array('sunday', 'monday', 'tuesday', 'wednesday', 'thursday', 'friday', 'saturday', 'sun', 'mon', 'tue', 'wed', 'thu', 'fri', 'sat'))) {
    throw new Exception("Viikonpäivä {$viikonpäivä} ei kelpaa!");
}
$b_alku = strtotime("yesterday", $a_alku);
$summa = 0;
while (true) {
    $b_alku = strtotime("next {$viikonpäivä}", $b_alku);
    $b_alku = strtotime($b_alku_klo, $b_alku);
    if ($b_alku > $a_loppu) {
        return $summa;
    }
    $b_loppu = strtotime($b_loppu_klo, $b_alku);
    $summa += päällekkäin_int($a_alku, $a_loppu, $b_alku, $b_loppu);
}

}

我仅成功驱动了该功能一行,

echo "Sunday hours: " . päällekkäin_int_viikonpäivä($vuoro_alku, $vuoro_loppu, "sunday") / 3600, "<br>\n";

这是我要尝试的示例;

    $query_vuorot = "SELECT * FROM vuorot WHERE vuoro_start >= :vuoro_start AND vuoro_start <= :vuoro_stop AND userID = :userID";
$stmt = $db->prepare($query_vuorot);
$stmt->bindParam(':vuoro_start', $options['Kpaivasta'], PDO::PARAM_STR);
$stmt->bindParam(':vuoro_stop', $options['Kpaivaan'], PDO::PARAM_STR); 
$stmt->bindParam(':userID', $_SESSION['memberID']); 
$stmt->execute();
$row_tunnit = $stmt ->fetch();

while (päällekkäin_int_viikonpäivä($row_tunnit, "sunday")) {
    $kaudenAlku = $row_tunnit["vuoro_start"];
    $kaudenLoppu = $row_tunnit["vuoro_stop"];
    echo "Sunnuntaitunteja: " . päällekkäin_int_viikonpäivä($kaudenAlku, $kaudenLoppu, "sunday") / 3600, "<br>\n";
}

请帮助我解决问题

0 个答案:

没有答案