如何创建自定义函数以在 php 中以这种 2021-0001 格式创建主要参考号
How to create custom function for create reference number as primary in this 2021-0001 format in php
我尝试创建主键值可自定义的增量格式。我编写 PHP 函数来使用以下函数生成主键。
function create_referance_key($connect){
/**********************create referance key********************************/
$year = date('Y');
$query = "
SELECT MAX(strRefNo) AS refnum FROM claims
WHERE strRefNo LIKE ''".$year."'%'";
$statement = $connect->prepare($query);
if($statement->execute())
{
$result = $statement->fetchAll();
//$RefNo = '';
foreach($result as $row)
{
$RefNo = $row["refnum"];
if($RefNo == ''){
$RefNo = $year.'-'. str_pad(1, 4, '0', STR_PAD_LEFT);
}else{
$array = explode("-",$RefNo);
$RefNo = $year.'-'.str_pad($array[1] + 1, 4, 0, STR_PAD_LEFT);
}
}
return $RefNo;
}
}
我想创建一个像 2021-0001,2021-0002,2021-0003 这样的密钥。我试了上面function.first的执行时间select query no data in the claim table.in case query return NULL
.其他情况查询显示最大参考号。(两者都是检查输入虚拟数据)但它不 return 任何值。我的 SQL 查询部分没问题。我在 foreach 循环中犯了什么错误?
声明table结构:
简单~
$row = query_fetch_object(query(SELECT strRefNo FROM claims ORDER BY dtBillDate DESC LIMIT 0,1));
// SPLIT THE STRING INTO ARRAY using explode()
// print_r($getSplit) to know more what is inside the array
$getSplit = explode("/",$row->strRefNo);
$newRef = date("Y")."/".($getSplit[1] + 1);
你的功能没问题。但是
SELECT MAX(strRefNo) AS refnum FROM claims
WHERE strRefNo LIKE ''".$year."'%';
参数绑定以错误的方式 ''".$year."'%'
应更改为 '".$year."%'
。
改变函数
function create_referance_key($connect, $empno){
/**********************create referance key********************************/
$year = date('Y');;
$query = "
SELECT MAX(strRefNo) AS refnum FROM claims
WHERE strRefNo LIKE '".$year."%'";
$statement = $connect->prepare($query);
if($statement->execute())
{
$result = $statement->fetchAll();
//$RefNo = '';
foreach($result as $row)
{
$RefNo = $row["refnum"];
if(empty($RefNo)){
$RefNo = $year.'-'. str_pad(1, 4, '0', STR_PAD_LEFT);
}else{
$array = explode("-",$RefNo);
$RefNo = $year.'-'.str_pad($array[1] + 1, 4, 0, STR_PAD_LEFT);
}
}
return $RefNo;
}
}
我尝试创建主键值可自定义的增量格式。我编写 PHP 函数来使用以下函数生成主键。
function create_referance_key($connect){
/**********************create referance key********************************/
$year = date('Y');
$query = "
SELECT MAX(strRefNo) AS refnum FROM claims
WHERE strRefNo LIKE ''".$year."'%'";
$statement = $connect->prepare($query);
if($statement->execute())
{
$result = $statement->fetchAll();
//$RefNo = '';
foreach($result as $row)
{
$RefNo = $row["refnum"];
if($RefNo == ''){
$RefNo = $year.'-'. str_pad(1, 4, '0', STR_PAD_LEFT);
}else{
$array = explode("-",$RefNo);
$RefNo = $year.'-'.str_pad($array[1] + 1, 4, 0, STR_PAD_LEFT);
}
}
return $RefNo;
}
}
我想创建一个像 2021-0001,2021-0002,2021-0003 这样的密钥。我试了上面function.first的执行时间select query no data in the claim table.in case query return NULL
.其他情况查询显示最大参考号。(两者都是检查输入虚拟数据)但它不 return 任何值。我的 SQL 查询部分没问题。我在 foreach 循环中犯了什么错误?
声明table结构:
简单~
$row = query_fetch_object(query(SELECT strRefNo FROM claims ORDER BY dtBillDate DESC LIMIT 0,1));
// SPLIT THE STRING INTO ARRAY using explode()
// print_r($getSplit) to know more what is inside the array
$getSplit = explode("/",$row->strRefNo);
$newRef = date("Y")."/".($getSplit[1] + 1);
你的功能没问题。但是
SELECT MAX(strRefNo) AS refnum FROM claims
WHERE strRefNo LIKE ''".$year."'%';
参数绑定以错误的方式 ''".$year."'%'
应更改为 '".$year."%'
。
改变函数
function create_referance_key($connect, $empno){
/**********************create referance key********************************/
$year = date('Y');;
$query = "
SELECT MAX(strRefNo) AS refnum FROM claims
WHERE strRefNo LIKE '".$year."%'";
$statement = $connect->prepare($query);
if($statement->execute())
{
$result = $statement->fetchAll();
//$RefNo = '';
foreach($result as $row)
{
$RefNo = $row["refnum"];
if(empty($RefNo)){
$RefNo = $year.'-'. str_pad(1, 4, '0', STR_PAD_LEFT);
}else{
$array = explode("-",$RefNo);
$RefNo = $year.'-'.str_pad($array[1] + 1, 4, 0, STR_PAD_LEFT);
}
}
return $RefNo;
}
}