我的程序遇到了一些问题。
我正在创建一个脚本,该脚本显示数据库中属性表中的所有属性,表中的一行应显示可用或已售出。它应检查puserId
是否为空或1或更多
//Execute the Query
$records = mysqli_query($con, $sql);
while($row = mysqli_fetch_array($records)){
echo "<tr>";
echo "<td>".$row['propertyId']."</td>";
echo "<td>".$row['propNum']."</td>";
echo "<td>".$row['AptNum']."</td>";
echo "<td>".$row['street']."</td>";
if (empty(['puserId'])) {
$status = 'Available';
}else {
$status = 'Sold';
}
echo "<td>".$status."</td>";
当我使用它时,它显示所有属性都已售出,也是puserId
null
的所有属性。但它并没有给我任何错误。
有人知道我应该怎么做吗?
提前致谢:)
答案 0 :(得分:1)
替换:
if (empty(['puserId'])) {
使用:
if (empty($row['puserId'])) {
为了修复丢失的变量$row
错误(您的实际代码检查数组['puserId']
是否为空,这显然是假的)。如果您的字段为null或数字,则还可以将其写为:
if (is_null($row['puserId'])) {
但我的建议是避免在与标识符相关的表字段中使用空/空值。只需给它们一个默认值0即可使一切变得更容易。此时,您可以将支票写为:
if ($row['puserId'] == 0) {
答案 1 :(得分:0)
除了$row['puserId']
错字之外,empty
在那里看起来并不实用。它包括一个isset
检查,考虑到您知道该列存在,这是无意义的。在使用它们之前,您没有检查是否已设置任何其他列。实际上也没有必要检查那个。只是直接评估它。 null
或0
值将在if条件中评估为false
。
if ($row['puserId']) {
$status = 'Sold';
} else {
$status = 'Available';
}