0

4桁の年と5桁の自動増分フィールドで構成される学生ID番号を作成したいと思います。例:2013-00001で、年が終わると、5桁の数字がゼロ(0)に戻ります。例:2014-00001。

ありがとう、メッタ

4

2 に答える 2

0
create Table width two columns: Year,LatestNumber 

function generateStudentId(){
    $year = date("Y");
    $latestNumber = 0;
    $res = mysql_query("select * from myTable where Year=$year");
    $result = mysql_fetch_array($res);
    if($result)
        $latestNumber = $result['LatestNumber'];
    $latestNumber++;
    if($result){
        mysql_query("update myTable set LatestNumber=$latestNumber where Year=$year");
    }
    else
        mysql_query("insert into myTable values($year,$latestNumber)");

    $fiveDigitNumber = return str_pad((int) $latestNumber,5,"0",STR_PAD_LEFT);
    $studentId = $year.$fiveDigitNumber;
    return $studentId;
}
于 2013-03-03T11:04:18.537 に答える
0

すべてのデータを格納する StudentId テーブル自体を使用できます。

select LatestNumber from StudentIds where Year=2013 ORDER BY LatestNumber DESC LIMIT 1;

年とは別の番号を保持して、新しい年にダミーの Year=2014, LatestNumber=0 を追加してリセットできるようにします。

$LatestNumber = $result['LatestNumber'];
$LatestNumber++;

insert into StudentIds (Year, LatestNumber, ...) values (2013, $LastestNumber, ...)

複数のクエリなどの場合のエラー処理を追加します...

于 2013-03-03T20:36:05.350 に答える