eguide序號問題

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

嗯…如果碰到取消報名…序號會不連續(汗)

對「eguide序號問題」的想法

發表留言