AVG()函数总是返回"数组"

Ric*_*oss -1 php mysql sql

这就是我得到的,更新的

$avg_query = "SELECT AVG(rating) AS avg_rating 
                FROM kicks 
               WHERE userid = '$userid'";

$avg_result = mysqli_query($cxn, $avg_query) or die("Couldn't execute query.");                         
$row = mysqli_fetch_assoc($avg_result);
$average = $row['avg_rating'];
Run Code Online (Sandbox Code Playgroud)

每当我回复它时,它总是返回数组.从来没有使用过这个功能,但我不明白为什么会这样做.

Mar*_*ers 5

你不应该在这里分配$ row吗?

$row = mysqli_fetch_assoc($avg_result);
$average = $row['AVG(rating)'];
Run Code Online (Sandbox Code Playgroud)

当您选择函数调用的结果时,我还建议使用别名:

$avg_query = "SELECT AVG(rating) AS avg_rating FROM kicks WHERE userid='$userid'"
...
$average = $row['avg_rating'];
Run Code Online (Sandbox Code Playgroud)

如果这仍然没有给出任何结果,那可能是因为:

  • 该表中没有该用户的行.
  • 该表中有一行,其中评级设置为NULL.

在第二种情况下,您可以通过过滤掉这些行来修复它:

SELECT AVG(rating) AS avg_rating
FROM kicks
WHERE userid='$userid'
AND rating IS NOT NULL
Run Code Online (Sandbox Code Playgroud)