[英]I'm using UNION to get COUNT of rows from 3 tables. But seem to receive only one result. and a notice “Undefined offset 1 and 2”
When I run this my browser brings back a notice.. "Undefined offsets 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];
}
Your query will return three rows with one column each. 您的查询将返回三行,每行一列。 You need to iterate fetch_row()
. 您需要迭代fetch_row()
。
|COUNT(id)|
===========
| 1337 |
| 23 |
| 42 |
Your code right now assumes one row with three columns. 您的代码现在假设一行三列。
you have not 3 column you get 3 rows (if the result is different in each row) 您没有3列,则得到3行(如果每行的结果不同)
you should iterate over the result 你应该遍历结果
$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 />;
}
if you want always the 3 row use union all 如果您始终希望3行全部使用union
$sql = "SELECT COUNT(id) as my_count FROM new UNION ALL
SELECT COUNT(id) FROM whatshot UNION ALL
SELECT COUNT(id) FROM featured";
because union return only distinct result 因为工会只返回不同的结果
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.