如何在while循环中调用函数

yqkkidmi  于 2021-06-24  发布在  Mysql
关注(0)|答案(0)|浏览(299)

我有一个计算星期天上班时间的函数。我的问题是,当我从数据库中获得多个行时,我想通过函数使用它们并计算它们的总和。

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";
}

请帮我解决一个问题

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题