我正在尝试获得最高数字,然后将其增加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;
}
我在这里做错了什么。感谢
答案 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;
}