php获取最大值(accNumber),然后递增1

时间:2013-08-09 19:41:29

标签: php

我正在尝试获得最高数字,然后将其增加1。 我得到空白页面,这是我的代码

   $query = $pdo->prepare("SELECT max(accnum) FROM accounts");
        $query->execute();

       while($num = $query->fetchAll()){

        if($num[1] == null){

        $accnumber = "100001";

        }else{

        $accnumber = $num[1]++; 
    }
        echo $accnumber;
    }   

我在这里做错了什么。感谢

3 个答案:

答案 0 :(得分:0)

  $query = $pdo->prepare("SELECT max(accnum) FROM accounts");
        $query->execute();

       while($num = $query->fetchAll()){

        if($num[0] == null){

        $accnumber = "100001";

        }else{

        $accnumber = $num[0]++; 
    }
        echo $accnumber;
    }  

答案 1 :(得分:0)

也许你需要这样的东西?

$query = $pdo->prepare("SELECT max(accnum)+1 as maximum FROM accounts");
$query->execute();
$result = $query->fetch(PDO::FETCH_ASSOC);
if($result['maximum'] == null) { 
    $result = "100001" 
} else { 
    $result = $accnumber['maximum'] 
}

答案 2 :(得分:0)

你正在使用postincrement;也就是说,++位于变量之后,因此it's not updated until after the assignment is complete

只需使用此代码:

$accnumber = $num[1] + 1;

这样,$num不受影响,您的价值也是正确的。

由于您收到空白页,因此可能不是问题。所以,您可能还想重新考虑如何处理这些值;你似乎在混合字符串和整数,这可能不会很好。我建议只使用整数。此外,您应该使用$num[0],因为您正在获取基于零的数组的第一个值:

$query = $pdo->prepare("SELECT max(accnum) FROM accounts");
$query->execute();

while($num = $query->fetchAll()){

    if($num[0] == null){

        $accnumber = 100001;
    }else{

        $accnumber = intval($num[0]) + 1;
    }
    echo $accnumber;
}