2016-01-21 42 views
2

我需要一个帮助。我需要使用PHP下面给出的给定序列生成一个票号。如何使用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.Please帮助我。

+1

请粘贴您尝试过的代码。 –

+0

另外,您是否认为您可能需要在一天内签发超过999张门票? – toomanyredirects

+0

你是否在寻找某人为你写代码?或者您是否已经尝试过某些内容,并且代码无法正常工作? – Dragos

回答

0

可能你只需要像这样:

$ticketnumber = 'W1'.date('YdM' time()).str_pad($value, 3, '0', STR_PAD_LEFT); 

$值是当天最后输入的标签密钥。这可以通过函数来​​处理,以检查最后一个售票日。如果相同日期+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'; 
} 
+0

@ ClearBoth:ID应该每天从001开始。 – satya

+0

@satya更新答案。 – ClearBoth

+0

什么是$值。 – satya

0

添加在你的表,用于存储你订票的身份证号码一样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. 
0

PHP 不具有mecanism同步一个集团执行代码
2的用户可以取得相同的票号!! 也,你必须存储当前的票号!

就个人而言,我已经写了持有ANS同步变量的访问一个开源项目,您可以在github上从这里得到它:PHP - Synchronized Data Structure Server

而且还有其他的解决方案,如存储和同步递增的味道使用数据库

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 

您还可以保存准考证号到数据库,并最后一次通话创建新票前条记录。

+0

但唯一的ID应该是3位数字。 – satya

+0

它最好将唯一的数字(1-999)保存到服务器中的txt文件中,并在每次需要新票时调用它。 我会发表另一个答案 –