PHP关联数组:特殊字符?

时间:2016-03-10 13:45:52

标签: mysql arrays count associative

我有这个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(*)识别为列名并且没有结果。如何访问第二列值?

2 个答案:

答案 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(*)应该是有效的密钥,但您需要将其括在引号中。