原本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 " ;
這樣的做法應該也能適用到「國中組要細分成七、八、九年級組」的情形。