在 php 中的 Do While 语句中测试最小字符串长度时从最大 ID 创建客户 ID
Creating customer ID out of max id while testing min string length in Do While Statement in php
我正在为管理面板创建一个基本的客户管理系统,需要为每个新客户创建一个新的 ID 号,但我希望它 运行 脱离数据库中的行 ID。我正在检查最后一个 ID 号是什么,然后向它添加一个。客户 ID 号如下:000001、000002,依此类推。
在下面的脚本中,我首先从 table 中测试 MAX 客户 ID 并获取相关数据,将客户 ID 存储到变量中,然后将变量结果加 1。这是问题的一小部分开始的地方。添加后的结果是一位数字,而不是 6 位数字结果,例如 000003。我得到 3 个。然后我用 str_pad(); 将 0 中的填充添加到最终结果;这样我就可以添加创建客户编号所需的额外 5 个 0。
当我尝试添加 while 语句时,大问题就开始了。我不断得到这个:
"Fatal error: Maximum execution time of 30 seconds exceeded in ..."
我假设这是因为 while 语句以某种方式创建了一个无限循环。关于什么可以解决这个问题的任何想法?我尝试了 3 种不同的方法,但是当我执行 "do... while loop" 时,我不断收到致命错误。谢谢
do{
if($result = $dbConnection->query("SELECT MAX(customerId) AS customerId FROM customers")){
$data = $result->fetch_assoc();
$itemId2 = $data['customerId'];
$customerId = $itemId2 + 1;
}
$customerId = str_pad($customerId, 1, '0', STR_PAD_LEFT);
} while(strlen($customerId) < 5);
sprintf('%06d', 1231);
06 表示它将是一个 6 位字符串,它将在 1231 前添加 2 个零。
可以调整为最大长度。
如果它很重要,可能想转换回整数。
我正在为管理面板创建一个基本的客户管理系统,需要为每个新客户创建一个新的 ID 号,但我希望它 运行 脱离数据库中的行 ID。我正在检查最后一个 ID 号是什么,然后向它添加一个。客户 ID 号如下:000001、000002,依此类推。
在下面的脚本中,我首先从 table 中测试 MAX 客户 ID 并获取相关数据,将客户 ID 存储到变量中,然后将变量结果加 1。这是问题的一小部分开始的地方。添加后的结果是一位数字,而不是 6 位数字结果,例如 000003。我得到 3 个。然后我用 str_pad(); 将 0 中的填充添加到最终结果;这样我就可以添加创建客户编号所需的额外 5 个 0。
当我尝试添加 while 语句时,大问题就开始了。我不断得到这个: "Fatal error: Maximum execution time of 30 seconds exceeded in ..."
我假设这是因为 while 语句以某种方式创建了一个无限循环。关于什么可以解决这个问题的任何想法?我尝试了 3 种不同的方法,但是当我执行 "do... while loop" 时,我不断收到致命错误。谢谢
do{
if($result = $dbConnection->query("SELECT MAX(customerId) AS customerId FROM customers")){
$data = $result->fetch_assoc();
$itemId2 = $data['customerId'];
$customerId = $itemId2 + 1;
}
$customerId = str_pad($customerId, 1, '0', STR_PAD_LEFT);
} while(strlen($customerId) < 5);
sprintf('%06d', 1231);
06 表示它将是一个 6 位字符串,它将在 1231 前添加 2 个零。 可以调整为最大长度。 如果它很重要,可能想转换回整数。