ホームページ >バックエンド開発 >PHPチュートリアル >ThinkPHP5を利用した宿題管理システムにおける生徒の未提出宿題と提出済み宿題情報の処理方法を実装する

ThinkPHP5を利用した宿題管理システムにおける生徒の未提出宿題と提出済み宿題情報の処理方法を実装する

不言
不言オリジナル
2018-06-08 09:48:141405ブラウズ

この記事では主に、宿題管理システムで生徒の未払い宿題と提出された宿題情報を処理する方法の ThinkingPHP5 実装を紹介します。これには、データ テーブルのクエリとトラバース操作に関する thinkPHP の実装スキルが含まれます。以下

この記事の例では、ThinkPHP5 を使用して、生徒の未提出の宿題と提出された宿題の情報を宿題管理システムで処理する方法を説明します。参考までに皆さんと共有してください。詳細は次のとおりです。

宿題管理システムでは、学生がパーソナル センターにログインした後、左側のメニューから提出済みの宿題と未提出の宿題を確認できます。 。では、システム内のこれらのデータをクエリするにはどうすればよいでしょうか?まず、Student、Class、Submit の 3 つのテーブル間の関係を理解する必要があります。

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;
 }

からわかるように。上記のコードレッスンでは、まず学生ID($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 次元配列を減算することができます。 2 番目から 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 中国語 Web サイトに注目してください。

関連する推奨事項:

ThinkPHP は、データベース クエリ結果データの対応する型への変換を実現します。

thinkPHP3.2.3 を Laypage と組み合わせると、ページング機能を実現

以上がThinkPHP5を利用した宿題管理システムにおける生徒の未提出宿題と提出済み宿題情報の処理方法を実装するの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。