>백엔드 개발 >PHP 튜토리얼 >ThinkPHP5를 사용하여 숙제 관리 시스템에서 학생의 미제출 숙제 및 제출된 숙제 정보 처리 방법을 구현합니다.

ThinkPHP5를 사용하여 숙제 관리 시스템에서 학생의 미제출 숙제 및 제출된 숙제 정보 처리 방법을 구현합니다.

不言
不言원래의
2018-06-08 09:48:141406검색

이 글에서는 숙제 관리 시스템에서 학생들의 미제출 숙제와 제출된 숙제 정보를 처리하는 ThinkPHP5 구현 방법을 주로 소개합니다. 여기에는 데이터 테이블 쿼리 및 순회 작업을 위한 thinkPHP 관련 구현 기술이 포함됩니다. this article

이 문서에서는 ThinkPHP5를 사용하여 숙제 관리 시스템에서 학생들의 미제출 숙제와 제출된 숙제 정보를 처리하는 방법을 설명합니다. 참고하실 수 있도록 자세한 내용은 다음과 같습니다.

숙제관리 시스템에서는 학생이 개인센터에 로그인한 후 왼쪽 메뉴를 통해 제출한 숙제와 미제출 숙제를 확인할 수 있습니다. 그렇다면 시스템에서 이러한 데이터를 쿼리하는 방법은 무엇입니까? 먼저 Student, Class, Submit 세 테이블 간의 관계를 파악해야 합니다.

1. 모든 학생은 하나의 수업에 속합니다

2. 해당 수업의 모든 학생에게 동일한 숙제가 할당됩니다

3. 학생이 숙제를 제출하면 학생 ID 등의 응답 기록이 추가됩니다. 숙제 제출 양식, 직업 ID, 제출 내용 등

다음 단계에 따라 학생들이 제출한 숙제와 미제출 숙제를 얻을 수 있습니다

1. 학생의 수업 숙제를 모두 가져옵니다

//获取学生所在班级的所有作业
 public function getTasks($stuno)
 {
 $stu=$this::get(['stu_no'=>$stuno]);
 $clas=Clas::get(['clas_id'=>$stu['clas_id']]);
 return $clas->task;
 }

위의 코드 수업에서 볼 수 있듯이 먼저 학생 정보를 다음과 같이 가져옵니다. 학생번호($stuno)를 입력하고, 정보 테이블에 저장된 클래스 ID(clas_id)를 이용하여 최종적으로 해당 클래스와 다대다 관계를 통해 해당 학생의 클래스 정보를 얻는다. 숙제 시트(자세한 내용은 모델 연결에 대한 Thinkphp5 공식 매뉴얼 참조), 학생의 수업 정보를 얻습니다.

2. 학생의 제출되지 않은 과제 가져오기

//获取某学生所有未交作业
 public function getUnSubmitTasks($stuno)
 {
 $stu=$this::get(['stu_no'=>$stuno]);
 $alltask=$this->getTasks($stuno);
 foreach($alltask as $key=>$value)
 {
  if(Submit::get(['task_id'=>$value['task_id'],'stu_id'=>$stu['stu_id']]))
  {
  unset($alltask[$key]);//删除已提交作业
  }
 }
 return $alltask;
 }

이 함수는 먼저 학생 수업의 모든 과제를 가져오기 위해 모든 과제를 가져오는 함수($this->getTasks($stuno))를 호출합니다. 이 데이터 세트는 2차원 배열입니다. 학생이 제출한 2차원 배열에 숙제가 있는지 확인하려면 해당 요소를 삭제하세요.

3. 학생들이 제출한 숙제 얻기

위의 두 함수를 사용하면 첫 번째 함수에서 얻은 2차원 배열에서 두 번째 함수에서 반환된 배열을 뺀 값이 간단해집니다. 제출했으니 2차원 배열의 차이만 해보세요

//获取某学生所有已交作业(所有作业和未交作业的差集)
 public function getSubmitTasks($stuno)
 {
 $unsubmit=$this->getUnSubmitTasks($stuno);
 $alltasks=$this->getTasks($stuno);
 $submittasks=array();
 foreach ($alltasks as $key=>$value)
 {
  if(!in_array($value,$unsubmit))
  {
  $submittasks[]=$value;
  }
 }
 return $submittasks;
 }

위 내용은 이 글의 전체 내용입니다. 모든 분들의 학습에 도움이 되기를 바랍니다. 더 많은 관련 내용은 PHP 중국어 홈페이지를 주목해 주세요!

관련 권장 사항:

ThinkPHP는 데이터베이스 쿼리 결과 데이터를 해당 유형으로 변환을 구현합니다.

thinkPHP3.2.3과 Laypage를 결합하여 페이징 기능을 구현합니다

위 내용은 ThinkPHP5를 사용하여 숙제 관리 시스템에서 학생의 미제출 숙제 및 제출된 숙제 정보 처리 방법을 구현합니다.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.