这是我的表wys_attendence
:
id studid adate amonth ayear acls_id attendence
1 28 02 07 2015 10 1
2 31 02 07 2015 10 0
4 32 02 07 2015 10 1
5 28 13 07 2015 10 0
6 31 13 07 2015 10 1
7 32 13 07 2015 10 1
9 28 14 07 2015 10 1
10 31 14 07 2015 10 1
11 32 14 07 2015 10 1
13 28 15 07 2015 10 1
14 31 15 07 2015 10 0
15 32 15 07 2015 10 1
17 28 16 07 2015 10 0
18 31 16 07 2015 10 1
19 32 16 07 2015 10 1
21 28 17 07 2015 10 1
22 31 17 07 2015 10 1
23 32 17 07 2015 10 0
24 28 20 08 2015 10 1
25 31 20 08 2015 10 1
26 32 20 08 2015 10 0
我想检查特定年份和月份的每一天是否在表格中,并在数据透视表中显示结果。
我正在使用此代码:
$dayCount = date('t', strtotime('01-'. $amonth . '-' . $ayear));
$days = [];
for($i = 1; $i <= $dayCount; $i++) {
$days[] = $i; }
显示所选月份和年份的所有日期。
我正在将此代码用于控制器:
for($i = 1; $i <= $dayCount; $i++) {
$days[] = sprintf('%02d/%02d/%04d', $i, $amonth, $ayear);
$attendance = DB::table('wys_teacherattendances')
->where('t_amonth', $amonth)
->where('t_ayear', $ayear)
->get();
}
我得到的输出不正确。这就是我得到的:
studid 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17.......... 31
28 0 1 1 1 0 1
31 1 1 1 1 1 1
32 0 1 1 1 1 0
但我想这样:
studid 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17.......... 31
28 x 0 x x x x x x x x x x x 1 1 1 0 1.....x x x..x
31 x 1 x x x x x x x x x x x 1 1 1 1 1.....x x x..x
32 x 0 x x x x x x x x x x x 1 1 1 1 0.....x x x..x
如何修改我的查询以实现上述结果,以及检查所选月份和年份的所有日期是否都在数据库中?如果studid
没有特定日期,我希望在相应列中显示x
,否则我想显示attendance
的值。
还有如何更改我的view.blade.php
页面以获取我的数据库表?
这是我的view.blade.php
代码:
@for($i = 1; $i <= $dayCount; $i++)
<td>{{$i}}</td>
@endfor
</tr>
@foreach($stud as $studs)
<tr>
<td>{{$studs->sname}}</td>
@foreach($attendance as $attendances)
@if($studs->id == $attendances->t_auserid)
@if($attendances->t_attendance == 1)
<td><font color="green">p</font></td>
@elseif($attendances->t_attendance == 0)
<td><font color="red">a</font></td>
@endif
@endif
@endforeach
</tr>
@endforeach
</tr>
@endforeach