首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >渐进式字符串与int生成混合

渐进式字符串与int生成混合
EN

Stack Overflow用户
提问于 2015-08-11 10:47:24
回答 1查看 80关注 0票数 3

在每次调用操作时,生成的数字都会增加,我遇到了一个问题。

当数值到达10时,我无法打印11,等等.

代码语言:javascript
复制
    $this->sql = "SELECT codice FROM accettazione ORDER BY id DESC LIMIT 1";

    if ($result = $this->hookUp->query($this->sql)) {

        if ($result->num_rows > 0) {
            while ($rw = mysqli_fetch_array($result, MYSQLI_BOTH)) {

                (int)$codice = substr($rw['codice'], -1);

                if ($codice < 9) {
                    $rw['codice'] = date("Y") . ".0000";
                } else /*if ($codice == 9 || $codice < 99)*/ {
                    $rw['codice'] = date("Y") . ".000";
                }

                echo $rw['codice'] . ++$codice;
            }
        } else {
            echo date("Y") . ".00001";
        }

    } else if ($this->hookUp->query($this->sql) === false) {
        echo "fail";
    }
}

它的目标是打印值低于10的00001,低于100的++00010,低于1000的++00100,等等。

当代码为00010,值为00011时,该值返回到00001 (如果($结果->num_row> 0)不再满足)。

在mySQL表中,$rw"codice“是一个VARCHAR。

为什么?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-08-11 11:07:36

我想你希望用前导零显示你的值。这就是:

代码语言:javascript
复制
     1  displayed as 00001
     9  displayed as 00009
    11  displayed as 00011
  1234  displayed as 01234

这是一个与IBM 029键盘机一样古老的需求。(如果我猜错了,请编辑你的问题。)

使用斯普林特在php中很容易。

代码语言:javascript
复制
$string_codice = sprintf('%05d', $codice); 

编辑

我觉得你这么做很难。看起来,您需要一个字符串来读取2015.000012015.09876或类似的内容。但我对从代码中猜测您的需求并不自信。首先,我不知道数据库表中codice列中的值是什么样子的。

也许你可以试试这样的方法。

代码语言:javascript
复制
   /* assume the counter starts at zero */
   $codice = 0;
   if ($result->num_rows > 0) {
        /* fetch the counter value from the table if nay. */
        while ($rw = mysqli_fetch_array($result, MYSQLI_BOTH)) {
            (int)$codice = $rw['codice'];  /* no substr */
        }
    }
    /* add one to the value and format it YYYY.000nn */
    $codice++;
    $stringval = date("Y") . "." . sprintf('%05d', $codice); 
    echo $stringval;
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31939694

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档