使用mysql制作唯一的发票号码并使用

时间:2013-12-05 06:23:25

标签: random unique invoice

目前这是我创建随机唯一发票号码的功能,该号码存储在表格的隐藏字段中

function generate_invoice_number() {
    global $wpdb;
    $lastVisitor = $wpdb->get_results("SELECT visitorID FROM event_visitors_2014 ORDER BY visitorsID DESC LIMIT 1", ARRAY_A);
    $nr_last = $lastVisitor[0]['visitorID']; 
    $nr = 501 + $nr_last;
    $value = sprintf( '%04d', $nr );
    $number = 'LEDEXPO'.date('Y').'-'.uniqid().'-'.$value;      
    return $number; 
} 

当多个人同时使用该表单时,我遇到了问题,比如3个人正在使用他们都生成相同数字的表单。 所以我添加了uniqid(),所以$ value可以重复,但$ number应该是唯一的?这是正确的还是有更好的方法?

如何使测试功能在独特性上测试此功能?

问候

1 个答案:

答案 0 :(得分:1)

试试这个:

function generate_invoice_number()
{
global $wpdb;
$lastVisitor = $wpdb->get_results("SELECT visitorID FROM event_visitors_2014 ORDER BY visitorsID DESC LIMIT 1", ARRAY_A);
$nr_last = $lastVisitor[0]['visitorID'] + 1;
$number = date('Ymd') . $nr_last;
return $number; 
}