Php td元素内部回声错误

Php td元素内部回声错误,php,html,pdo,Php,Html,Pdo,我试图查看数组是否为空,因此在中,我将写:不可用。 我有以下PHP/PDO代码: $sql1= "SELECT SUM(total_pay) AS total_w FROM workers WHERE date_of_pay = :d1 AND projects_id = :id"; $stmt1 = $conn->prepare($sql1); $stmt1->bindValue(":d1", $d); $stmt1->bindValue(":id"

我试图查看数组是否为空,因此在
中,我将写:不可用。
我有以下PHP/PDO代码:

$sql1= "SELECT SUM(total_pay) AS total_w FROM workers WHERE date_of_pay = :d1 AND projects_id = :id";
    $stmt1 = $conn->prepare($sql1);

    $stmt1->bindValue(":d1", $d);
    $stmt1->bindValue(":id", $id);
    $count1 = $stmt1->execute();
    $result1 = $stmt1->fetchAll();
    $num1 = $stmt1->rowCount();
这是我的html代码:

<?php if($num1==0):?>
<td align="center">Not Available</td>
<?php else: ?>
<td align="center">
<?php 
{
    foreach ($result1 as $res1)
    {
        echo $res1['total_w'];
    }
}
?>
<?php endif; ?>
</td>

无法使用的
当数组不为空时,我有一个值,它通常会显示在
中,但当
num1
为空($num1==0)时,
中不会显示任何内容,即使
的文本不可用

直接取自:

PDOStatement::rowCount()返回受相应PDOStatement对象执行的最后一个DELETE、INSERT或UPDATE语句影响的行数

它不返回SELECT查询结果集的行数。这就是说:您正在
选择一个
求和
,因此结果集将始终存在(如果查询成功)。如果没有记录
SUM
,则该值将为
NULL
。那么你应该做的是:

$result = $stmt1->fetch(PDO::FETCH_ASSOC);//SUM is only 1 row anyway

if ($result['total_w'] === null) {
    //no records found, no sum to display
} else {
    echo $result['total_w'];//show result
}
检查
total_w
==null
(类型和值检查)取决于您已将
PDO::ATTR\u ORACLE\u NULLS
设置为
PDO::null\u NATURAL
。如果你没有