原本play_group_level欄位的設計是要把男生組、女生組整合在一個level(如男童甲組、女童甲組的play_group_level都設5)
後來有些需求,例如國小甲、乙、丙組外要增設中年級組。
剛開始的因應方式是在報名階段將中年級的play_group_level設為5678,
sql語法改成用like的方式讓中年級組可以出現在甲、乙、丙各組。
等待報名完成後,將中年級的play_group_level回復成8,變成獨立組進行比賽。
這樣的做法有個問題,當進入比賽模式後如果有需要修正學校報名項目時,會出現無法正常顯示中年級組別-項目的問題。
如果可以在play_group中新增一個欄位pglb(play_group_level_b),註明該組屬於那個play_group_level
應該就不需要在報名模式與比賽模式之間切換了。
定義pglb的值
高中組3
國中組4
國小組5
資料庫部分
在play_group及gov中各新增pglb欄位型態char(2)
play_group資料表:中年級的play_group_level設為8,pglb設為5。甲、乙、丙組play_group_level分別設為5,6,7,pglb值不設定。
gov資料表:play_group_level依組別設為5,6,7。pglb階設為5。
程式修改:
一、
\login.php 新增 $_SESSION['pglb']
約70行
$pg_level = $recordSet->fields["play_group_level"] ;
$_SESSION['play_group_level'] =$pg_level ;
新增
$_SESSION['pglb'] = $recordSet->fields["pglb"] ;
二、
\function.php get_play_group_array()中
約686行
//$sqlstr = " select * from `play_group`
// where ( ( played='1') and ( play_group_level like '%" . $_SESSION['play_group_level'] ."%') )
// order by play_group_sex , play_group_level , play_group_order_id " ;
//配合play_group加入pglb(play_group_levle_b)欄位
$sqlstr = " select * from `play_group`
where ( played='1') and ( (play_group_level = '$_SESSION[play_group_level]') or pglb='$_SESSION[pglb]' )
order by play_group_sex , play_group_level , play_group_order_id " ;
這樣的做法應該也能適用到「國中組要細分成七、八、九年級組」的情形。