我目前正在制作一个小型制作跟踪器,让我的工作变得更轻松,到目前为止一切顺利,但在获取一些统计数据方面,我还遇到了障碍。
我试图计算星期日 - 星期日和所有行之间的所有行,以表示日/夜班次。
以下是我到目前为止的问题,我遇到的问题是唯一一个似乎有效的查询是Days,甚至那似乎只想输出星期日(今天)数,其他一切都回来了尽管如此,回显$ key或$ value foreach也是正确的。
感谢您的帮助。
$this_week = array($monday=>"monday", $tuesday=>"tuesday", $wednesday=>"wednesday", $thursday=>"thursday", $friday=>"friday", $saturday=>"saturday", $sunday=>"sunday");
foreach ($this_week as $key => $value) {
// Days
$sql_day = "SELECT count(*) FROM `stage_tbl` WHERE stage_1_date = :datenow AND stage_1_time BETWEEN :day_start AND :day_end";
$result_day = $conn->prepare($sql_day);
$result_day->execute(array ('datenow' => $key, 'day_start' => $day_start, 'day_end' => $day_end));
$number_of_rows_day = $result_day->fetchColumn();
$day = "{$value}_day";
$$day = $number_of_rows_day;
// Nights
$datenext = date('Y-m-d', strtotime($key. ' + 1 days'));
$sql_night = "SELECT count(*) FROM `stage_tbl` WHERE stage_1_date = :datenow AND stage_1_time >= :night_start OR WHERE stage_1_date = :datenext AND stage_1_time <= :night_end";
$result_night = $conn->prepare($sql_night);
$result_night->execute(array ('datenow' => $key, 'night_start' => $night_start, 'night_end' => $night_end, 'datenext' => $datenext));
$number_of_rows_night = $result_night->fetchColumn();
$night = "{$value}_night";
$$night = $number_of_rows_night;
}
答案 0 :(得分:0)
你不需要变量$ monday直到$ sunday key。您没有分配这些变量。
你想要的是这个:
$this_week = ['Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday', 'Sunday'];
请注意,我们也不再使用旧的array()语法来创建数组。现在我们使用[]语法。
现在我们可以循环:
foreach ($this_week as $day) {
// your logic goes here
// $day will equal 'Monday' for the first run
// and 'Sunday' for the last run
}
答案 1 :(得分:0)
我没有把输出放在foreach中,所以最后我只得到了最后的结果。谢谢你的回顾。