我正在使用 UNION 从 3 个表中获取行数。但似乎只收到一个结果。和通知"Undefined offset 1 and 2"



当我运行此浏览器时,我的浏览器会带回通知.."未定义的偏移1和2"

$sql = "SELECT COUNT(id) FROM new UNION
        SELECT COUNT(id) FROM whatshot UNION
        SELECT COUNT(id) FROM featured";
if($query = $db->query($sql))
{
    $row = $query->fetch_row();
    echo $row[0].' '.$row[1].' '.$row[2];
}

您的查询将返回三行,每个列。您需要迭代fetch_row()

|COUNT(id)|
===========
|    1337 |
|      23 |
|      42 |

您的代码现在假设一行带有三列。

您没有3列,您会得到3行(如果每行的结果不同)

您应该迭代结果

    $sql = "SELECT COUNT(id) as my_count FROM new UNION
            SELECT COUNT(id) FROM whatshot UNION
            SELECT COUNT(id) FROM featured";
    if($query = $db->query($sql))
    {
        while($row = $query->fetch_row();
        echo $row['mycount'] . <br />;
    }

如果您始终想要3行使用联盟

$sql = "SELECT COUNT(id) as my_count FROM new UNION ALL
            SELECT COUNT(id) FROM whatshot UNION ALL 
            SELECT COUNT(id) FROM featured";

因为联合仅返回不同的结果

最新更新