0

我正在尝试获取最高数字,然后将其增加 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;
    }   

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

4

3 回答 3

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;
    }  
于 2013-08-09T19:44:02.897 回答
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'] 
}
于 2013-08-09T19:55:51.323 回答
0

您正在使用postincrement;也就是说,++在变量之后,所以直到赋值完成之后才会更新

只需使用它:

$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;
}
于 2013-08-09T19:58:06.783 回答