Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/263.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 根据另一个雄辩查询的结果在循环中运行雄辩并在刀片中显示列表_Php_Mysql_Laravel_Eloquent_Laravel Blade - Fatal编程技术网

Php 根据另一个雄辩查询的结果在循环中运行雄辩并在刀片中显示列表

Php 根据另一个雄辩查询的结果在循环中运行雄辩并在刀片中显示列表,php,mysql,laravel,eloquent,laravel-blade,Php,Mysql,Laravel,Eloquent,Laravel Blade,我有一个查询,它使用foreach循环来迭代并获取每个学生的学生id,从而获取学生和Iam的列表 在foreach循环中,我有另一个计算学生分数的查询。在计算学生分数时,我需要来自第一次查询的学生id 逻辑 现在的问题是,在blade中只有一个学生出现,但我需要显示一个学生查询中所有学生的列表。您正在覆盖$student\u average每个循环,因此只有最后一个循环的内容存储在$student\u average中。您需要改用数组 $student_平均值=[]; foreach$stude

我有一个查询,它使用foreach循环来迭代并获取每个学生的学生id,从而获取学生和Iam的列表

在foreach循环中,我有另一个计算学生分数的查询。在计算学生分数时,我需要来自第一次查询的学生id

逻辑

现在的问题是,在blade中只有一个学生出现,但我需要显示一个学生查询中所有学生的列表。

您正在覆盖$student\u average每个循环,因此只有最后一个循环的内容存储在$student\u average中。您需要改用数组

$student_平均值=[]; foreach$student作为$student{ $student_averages[]=DB::选择…您的查询; } 返回视图“分析.视图测试”,压缩“学生平均值”; 然后,您将获得所有学生的平均成绩,并可以在视图中循环查看。

您应该这样做

//创建一个数组来存储值 $student_average=[]; foreach$student作为$student{ //将结果推送到数组 $student_average[]=DB::selectDB::rawselect student_id,roundSUMt.mark/'5'average_mark from 从标记中选择marks.student_id,ROUNDAVGmark作为标记 内部联接教学加载在教学加载上。id=marks.teaching\u load\u id 内部连接主题上的主题。id=教学\u负载。主题\u id 其中marks.student_id=“$student”和marks.assessment_id=1 按主题分组\u id T }
您正在覆盖循环中的$student_平均值。你需要创建一个数组来循环使用它。代码正在运行,谢谢你让我知道为什么只返回一个用户的逻辑。谢谢,它正在运行。
$students = DB::table('grades_students')
  ->join('users', 'grades_students.student_id', '=', 'users.id')
  ->join('grades', 'grades_students.grade_id', '=', 'grades.id')
  ->where('grades.stream_id', $request->stream_name)
  ->get()->pluck('student_id');


  foreach ($students as $student ) {

    $student_average=DB::select(DB::raw("select student_id,  round((SUM(t.mark))/'5') average_mark from (
        select marks.student_id,  ROUND(AVG(mark)) as mark  from marks
            INNER JOIN teaching_loads ON teaching_loads.id=marks.teaching_load_id
            INNER JOIN subjects ON subjects.id=teaching_loads.subject_id
        where marks.student_id = '$student' AND marks.assessement_id=1  
        GROUP BY subject_id
      )t "));

}
return view('analytics.view-test', compact('student_average'));