Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/visual-studio/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Random 使用mysql创建唯一的发票编号并使用_Random_Unique_Invoice - Fatal编程技术网

Random 使用mysql创建唯一的发票编号并使用

Random 使用mysql创建唯一的发票编号并使用,random,unique,invoice,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

目前,这是我创建一个随机唯一发票号码的函数,该号码存储在表单的隐藏字段中

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应该是唯一的?这是正确的还是有更好的方法

如何使测试函数在唯一性上测试此函数

关于

试试这个:

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

插入记录前是否需要唯一id。通常,让DB创建唯一的ID,然后让程序重新格式化是一个更好的主意。UUID被设计成具有极强的抗冲突能力。@user2310289,是的,我认为在插入之前。我需要最后3个数字从500开始。我在表单提交时发送了一封电子邮件,这就是为什么我还生成了一份带有数字的.pdf发票,该数字附在电子邮件中。@Idrumm,UUID?我需要仔细阅读这篇文章tx@alex你已经在使用它们了。这只是对
uniqid()
将提供给您的内容的一个不同术语。编辑:我错了,请看这篇文章,但这不是必需的,因为visitorID在mysql端是自动递增的。“visitorID”列的数据类型是什么?您创建visitorID的逻辑是什么?visitorID是INT,我正在使用它创建“唯一”发票编号尝试以下操作:$number=date('ymdhis')。$lastVisitorid[0]['visitorID']