【发布时间】:2016-02-10 18:58:46
【问题描述】:
我用逗号分隔值将学生缺课情况存储在数据库中。
我确实将逗号视为正则表达式来计算学生缺课的课程数。
这就是我的做法。
@foreach($students as $student)
{{(preg_match_all('/[^,]+/',DB::table('discontinuities')
->where('student_id', $student->id)
->where('type2','absent')->pluck('type2Lesson'))) }}
Lessons student was absent.
@endforeach
但问题是学生可能缺席多天,这意味着多行存储在 discontinuities 表中,此查询显示唯一返回的第一个值。但我需要对总值求和以返回学生缺课的课程数
这是学生缺课的例子
这是结果查询
编辑:
如果我先输入2缺席,然后输入1缺席
那么结果就是
【问题讨论】:
-
你想用那个正则表达式做什么,计算
type2Lesson字段中逗号的数量? -
你怎么知道哪个输出属于哪个学生?您至少应该输出学生的姓名或 ID 或其他内容,以确保您看到的是您认为您正在查看的内容。
-
@Jeff 是的,我确实计算了逗号分隔值的数量,但在多行中。
-
@trincot 你怎么知道哪个输出属于哪个学生?我检查 ->where('student_id', $student->id)
-
是的,但是你循环遍历学生ID,那么你怎么知道哪一行属于哪个学生ID?