【发布时间】:2011-10-14 11:34:03
【问题描述】:
无论我做什么,我都无法将此代码发送给echo $done。
这是我的代码的摘录,我无法终生工作。我已经尝试了五种不同的方法,但没有任何效果。我唯一的结论是,由于UNION,它不起作用。
有没有办法解决这个问题?还是这就是问题所在?
$query01 = "SELECT COUNT(DISTINCT report) AS ip
FROM reports
WHERE country = '".$country."'
AND YEAR(date) = '2011'
AND MONTH(date) = '".$i."' AND
status ='IP'
UNION
SELECT COUNT(DISTINCT report) AS done
FROM reports
WHERE country = '".$country."'
AND YEAR(date) = '2011'
AND MONTH(date) = '".$i."'
AND status ='DONE'";
$result01 = mysql_query($query01);
while ($row01 = mysql_fetch_array($result01)) {
$ip = $row01['ip'];
$done = $row01['done'];
$all = $ip + $done;
if($all>0){
echo "<td>".$ip.":".$done."</td>";
}
else{
echo "<td>-</td>";
}
}
【问题讨论】:
-
UNION将两个选择合并在一起,它不会“加入”它们。在这种情况下,UNION将仅提供 1 列。 -
您假设它们是同一行上的两列,但实际上它们是两行。第一行包含
ip,第二行包含done。 -
回过头来看这件事,我好像把列和行搞混了。感谢您的所有帮助,朋友们。