我需要一个帮助。我需要使用给定的序列生成一个票号,这个序列在PHP下面给出。
1-W1(mandotary).
2-date(yy-dd-mm)format.
3-001-999(each day it will start from 001).
下面给出一个例子。
e.g-W120160121001
我做了以下不完整的部分。
if($_REQUEST['typeOfApp']=="WEB"){
$ticket_id='W1'.date("Y-m-d").'';
}
假设一次点击事件我将生成此票号,每天该票号的最后3位数将从001开始到999.请帮助我。
答案 0 :(得分:0)
可能你只需要这样的东西:
$ticketnumber = 'W1'.date('YdM' time()).str_pad($value, 3, '0', STR_PAD_LEFT);
$ value是当天输入的最后一张票证密钥。这可以通过检查最后一个票务日的功能来处理。如果同一日期+1计数。如果不是相同的日期重置计数器。
因此,假设您有以下功能来生成故障单代码:
function ticket_id_generator($ticketnumber){
$dateline = intval(substr($ticketnumber, 2, 8));
$value = intval(substr($ticketnumber, -3));
if($dateline == date('YdM', time())
return $value++;
else
return '1';
}
答案 1 :(得分:0)
在表格中再添加一个类似id的字段,该字段存储您的机票预订的ID号。以及在表中插入记录之前必须添加的另一个查询。
首先检查同一日期的记录数量是多少?然后递增该记录的计数并附加动态生成票证代码,如下所示。
$ticketnumber = 'W1' . date('YdM'). str_pad(($tempid + 1), 3, '0', STR_PAD_LEFT);
$tempid is the key which is added/started from 1 for the same date.
答案 2 :(得分:0)
PHP 没有用于同步块代码执行的机制
2个用户可以获得相同的票号!!
另外,你必须将当前的票号存储在某个地方!!
就个人而言,我写过一个开源项目,它持有ans同步变量的访问权限,你可以从github这里得到它:PHP - Synchronized Data Structure Server
还有其他解决方案,例如使用数据库存储和增加同步风格
答案 3 :(得分:0)
$file = 'ticketfile.txt';
// Open the file to get existing content
$current = file_get_contents($file);
// Increase ticket number
$current=$current+1;
// Write the contents back to the file
file_put_contents($file, $current);
$ticketNum = "W1".date('dmy').$current;
echo($ticketNum);
// This will echo out something like this
// W121012016001
您还可以将票号保存到数据库,并在创建新票证之前调用最后一次。