我有这个MySQL
选择查询:
SELECT country, COUNT(*)
FROM $database
GROUP BY country
输出是一个包含许多行和两列的关联数组:[country]
,[COUNT(*)]
现在我想用
将它们全部打印出来 if (count($results) > 0) {
for($x = 0; $x < $arrlength; $x++) {
echo "country: " . $results[$x]->country. "<br>";
echo "reads: " . $results[$x]**[COUNT()]**. "<br>";
}
} else {
echo "0 results";
}
似乎代码无法将COUNT(*)
识别为列名并且没有结果。如何访问第二列值?
答案 0 :(得分:1)
在COUNT(*)
的查询字段中添加别名(名称)
像:
SELECT country, COUNT(*) as my_count FROM $database GROUP BY country
并按名称在您的PHP代码中调用它:
if (count($results) > 0) {
for($x = 0; $x < $arrlength; $x++) {
echo "country: " . $results[$x]->country. "<br>";
echo "reads: " . $results[$x]->my_count. "<br>";
}
} else {
echo "0 results";
}
答案 1 :(得分:0)
$results[$x]->country
是对象表示法。 $results[$x]
是数组还是对象?它们不是同一件事。我不确定$results[$x]**[COUNT()]**
是什么意思,但在密钥周围添加星号肯定会破坏事物。
对于数组,您可以使用:
$results[$x]['COUNT(*)']
或对象:
$results[$x]->{'COUNT(*)'}
COUNT(*)
应该是有效的密钥,但您需要将其括在引号中。