我试图得到最高的数字,然后将其递增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;
}
我在这里做错了什么。感谢
$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;
}
也许你需要这样的东西?
$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']
}
您使用的是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;
}