如何检查一月中的所有日期是否都在数据库中

时间:2015-08-03 08:16:50

标签: sql laravel-4

这是我的表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

0 个答案:

没有答案