我想在数据库中的数据库sql中的短语中添加值,我就像这样保存phrasr
DO-2500-01
DO-2500-02
现在我的问题是如何在最后一个值中添加 +1
,例如DO-2500-03 / DO-2500-04
这是我的代码
$getse = $DB_con->prepare("SELECT serial FROM `customer` WHERE user_add=:id ORDER BY serial DESC LIMIT 1");
$getse->execute(array(":id"=>$user_id));
$getse = $getse->fetch(PDO::FETCH_OBJ);
$addone = $getse->serial + 1;
echo $addone;
这是我的代码,我得到最后一个序列,我想添加+1,例如数据库中的最后一个序列是DO-2500-04
我想获得此值并添加 +1
要变成这样DO-2500-05
答案 0 :(得分:2)
拆分字符串,增加最后一部分并将其组合回来
$addone = explode('-', "DO-2500-04");
$addone[count($addone)-1] += 1;
// Append 0 if the last part less then 10
$addone[count($addone)-1] = str_pad($addone[count($addone)-1], 2, 0, STR_PAD_LEFT);
echo $addone = implode('-', $addone);
答案 1 :(得分:1)
您可以根据您的要求获得此信息。
如果DO-2500-99应为DO-2501-00,则以下代码可以正常工作。
$serialArr= explode('-', $getse->serial);
$serialNo = (int)$serialArr [1].$serialArr [2];
$newSerialNo = $serialNo + 1;
$newSerialNo = substr($newSerialNo, 0, -2)."-".substr($newSerialNo , -2);
$newSerial = $serialArr[0].'-'.$newSerialNo;
如果DO-2500-99应该是DO-2500-100,那么下面的代码可以工作。
$getse = 'DO-2500-99';
$serialArr= explode('-', $getse->serial);
$serialNo = (int)$serialArr [2];
$serialArr[2] = $serialNo + 1;
$newSerial = implode('-',$serialArr);
答案 2 :(得分:0)
DO-2500-04
它是一个String值,你不能在其上使用算术运算符。如果您只想让最后一个计数器增加,那么您需要做的是通过将字符串分割为-
来获取最后一个值。
然后获取最后一个值并将其递增,然后再按-
加入数组。
要拆分并加入数组,我们可以使用explode()和implode()。
这是使用 explode()
从字符串中获取最后一个值的方法$values=explode("-","DO-2500-04"); // $values is now array.
$lastvalue=(int)$values[2];
$lastvalue++;
if($lastvalue<9) {
$lastvalue = "0" . $lastvalue;
}
$values[2]=$lastvalue;
$incremented_string=implode("-",$values);
explode中的第一个参数表示要分割字符串的字符,与implode中的第一个参数相同,表示您要加入数组的胶水。
答案 3 :(得分:0)
只是为了好玩,你可以在SQL中做很多这样的事情:
$getse = $DB_con->prepare("SELECT serial,
LEFT(serial,8) AS serialBase,
SUBSTRING(serial,8) AS serialIdx
FROM `customer` WHERE user_add=:id
ORDER BY serial DESC LIMIT 1");
$getse->execute(array(":id"=>$user_id));
$getse = $getse->fetch(PDO::FETCH_OBJ);
$addone = $getse->serialBase + str_pad(($getse->serialIdx + 1),2,'0',STR_PAD_LEFT);
echo $addone;
更新了SQL。