我有此代码
require("connession.php");
$contabilita="d";
$dataa="10/12/2018";
$datam_0=explode("/", $dataa);
$datam = "".$datam_0[2];
$result = mysqli_query($con,"SELECT Max(n_ricevuta)+1 as max_ricevuta
FROM corrispettivi_mod
where anno='$datam'
and contabilita='$contabilita'");
$row = mysqli_fetch_assoc($result);
if(mysqli_num_rows($result) > 0){
echo $row['max_ricevuta'];
}
else{echo "1";}
这是我的数据库
data anno n_ricevuta contabilita
2019-12-01 2019 1 nd
在我的数据库中,我只有一行的字段值为'anno'2019,因此它必须打印为'1',但是没有。
如果我在数据库中修改字段anno的值为“ 2018”,那么它将起作用。
帮我谢谢
答案 0 :(得分:3)
使用max()
之类的聚合函数时,您总是会得到一行,如果没有匹配的行,它将返回null
。
所以您需要将测试更改为...
if($row['max_ricevuta'] != null){
echo $row['max_ricevuta'];
}
else {
echo "1";
}
正如RiggsFolly指出的那样,值得检查您在测试中使用的值
$contabilita="d";
示例数据显示nd
。