中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》
  • 首頁 > 
  • 教程 > 
  • 開發技術 > 
  • ThinkPHP5如何實現作業管理系統中處理學生未交作業與已交作業信息

ThinkPHP5如何實現作業管理系統中處理學生未交作業與已交作業信息

發布時間:2021-08-27 09:15:51 來源:億速云 閱讀:144 作者:小新 欄目:開發技術

這篇文章主要介紹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))獲得了學生所在班級的所有作業。這個數據集是一個二維數組,遍歷這個二維數組,看看這個二維數組中是否有作業已經被該學生提交到了Submit中,如果提交了就刪除該元素。

3.獲得學生已交作業

有了上述兩個函數,獲取已交作業的事情就變的簡單了,第一個函數獲得的二維數組減去第二個函數所返回的數組就是學生已交作業的集合,做下二維數組的求差即可

//獲取某學生所有已交作業(所有作業和未交作業的差集)
 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;
 }

以上是“ThinkPHP5如何實現作業管理系統中處理學生未交作業與已交作業信息”這篇文章的所有內容,感謝各位的閱讀!希望分享的內容對大家有幫助,更多相關知識,歡迎關注億速云行業資訊頻道!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

赞皇县| 金堂县| 柞水县| 洪洞县| 依安县| 乌海市| 巍山| 建始县| 长兴县| 克拉玛依市| 万年县| 汉阴县| 乌海市| 鄢陵县| 循化| 和田县| 绥棱县| 柘城县| 西乡县| 商都县| 乌兰察布市| 恩施市| 永福县| 德庆县| 栾川县| 靖安县| 南澳县| 青岛市| 江源县| 酉阳| 江口县| 合江县| 彰武县| 金秀| 从化市| 读书| 新密市| 镇安县| 阿巴嘎旗| 临武县| 阜新|