Xoops報名模組eguide如果要賦予報名活動自動編號功能,而每個活動要從0001號開始
面臨兩個問題
1.eguide內含的編號是流水號,號碼會一直延續下去,個別活動無法從1號開始,甚至同時進行2個以上活動報名時,序號是穿插的。
2.要補足4位數。
異想天開的先亂改一下,以後再來思考有效率的方式:
eguide_reserv資料表要先新增名為sn的欄位
以下為取得個別活動的序號
$result = $xoopsDB->query('SELECT sn FROM '.RVTBL." WHERE eid=$eid order by rvid desc limit 0,1"); if ($xoopsDB->getRowsNum($result)==0) { $sn=C_SPACE(4,1); } else { $data=$xoopsDB->fetchArray($result); $sn=C_SPACE(4,$data[sn]+1); }
網路上找到的補位數方法
//a=幾位數,b=值 function C_SPACE($a,$b) { //取出$b位數,算出要補幾個0 $c = $a - strlen($b); //產出要補得0 $d $d = str_repeat('0',$c); //把值前面加上0 $e=$d.$b; return $e; }
嗯…如果碰到取消報名…序號會不連續(汗)
Good