我表 student_atendence 表字段是(id,studid,attendence)。
这是我的表 student_atendence :
id studid attendence
1 28 1
2 31 0
4 32 1
5 28 0
6 31 1
7 32 1
9 28 1
10 31 1
11 32 1
13 28 1
14 31 0
15 32 1
17 28 0
18 31 1
19 32 1
21 28 1
22 31 1
23 32 0
24 28 1
25 31 1
26 32 0
我想要这样的结果
id studid total 1' s 0' s
1 28 6 1
2 31 6 1
3 32 5 2
如何分别获得每个学生的总注意数= 1和注意力= 0。
例如:28 - 6(总共1秒)和1(总计0秒),31 - 6(总共1秒)和1(总计0秒),32 - 5(总共1秒)和2(总计0秒)。
mycontroller代码foreach($students as $student){
$cunt1 = DB::table($wys_attendence_table)
->where('studid',$student->id)
->where('amonth',$amonth)
->where('ayear',$ayear)
->where('attendence','=',1)
->count();
$cunt0 = DB::table($wys_attendence_table)
->where('studid',$student->id)
->where('amonth',$amonth)
->where('ayear',$ayear)
->where('attendence','=',0)
->count();
//var_dump($cunt1);
//var_dump($cunt0);
}
我的观看页面@foreach($stud_attend as $stud_attends)
@if($student->id == $stud_attends->studid)
@if($stud_attends->attendence == 1)
<td><font color="green" size="3">p</font></td>
@elseif($stud_attends->attendence == 0)
<td><font color="red" size="3">a</font></td>
@endif
<td>{{$cunt1}}</td>
@endif
@endforeach
我从var_dump($ cunt0),var_dump($ cunt1)得到了正确的答案,但在视图页面中无效。
如何更改我的代码??
答案 0 :(得分:0)
试试这个......
DB::table($wys_attendence_table)
->select(DB::raw('studid, sum(attendence = 1) AS `total1`, sum(attendence = 0) AS `total0`'))
->where('studid',$student->id)
->where('amonth',$amonth)
->where('ayear',$ayear);