Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/66.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在PHP中回显表的总和_Php_Mysql_Database_Sum - Fatal编程技术网

在PHP中回显表的总和

在PHP中回显表的总和,php,mysql,database,sum,Php,Mysql,Database,Sum,我在一个名为Points的表中有两列。这两列是UserPoints和UserID 我希望能够回显一个用户拥有的总点数 我有这样的东西,但我觉得不对 $getTotalPoints = mysql_query("SELECT SUM(UserPoints) FROM `Points` WHERE `UserID` = '1'") or die(mysql_error()); $totalPoints = mysql_fetch_array($getTotalPoints); 当我通过回显“$t

我在一个名为Points的表中有两列。这两列是UserPoints和UserID

我希望能够回显一个用户拥有的总点数

我有这样的东西,但我觉得不对

$getTotalPoints = mysql_query("SELECT SUM(UserPoints) FROM `Points` WHERE `UserID` = '1'") or die(mysql_error()); 
$totalPoints = mysql_fetch_array($getTotalPoints);
当我通过回显“$totalPoints”来回显上述语句时,我得到了“Array”


有人知道正确的查询方法吗?

mysql\u fetch\u数组将结果行作为关联数组、数字数组或两者都提取。默认情况下,它会同时创建这两个对象。您只需
echo$totalPoints[0]

或者,如果您将请求重写为

$getTotalPoints = mysql_query("SELECT SUM(UserPoints) total FROM `Points` 
        WHERE `UserID` = '1'") or die(mysql_error()); 
$totalPoints = mysql_fetch_array($getTotalPoints);
echo $totalPoints['total'];

mysql_fetch_数组返回一个数组。因此,您需要将
$totalpoints
视为一个数组

尝试将此行添加到代码段的末尾:

echo$totalPoints[0]

有几种使用mysql函数检索数据的方法,我建议您阅读php手册中的相关内容


这是一个

结果集行是一个数组,包含的元素数量与您在SELECT中获得的元素数量相同。 在你的情况下,你只得到1个元素(总和)。 所以你应该:
echo$totalPoints[0]

如果您需要调试此类问题,我建议您阅读有关打印功能的内容。

您将获得
Array
,因为这是存储在
$totalPoints
中的内容。仔细查看您的代码,您将看到您使用了
mysql\u fetch\u array()
函数,该函数从作为数组的结果集中检索一行结果。如果在
$totalPoints
上执行
var\u dump()
,您将看到以下内容:

Array
(
    [0] => 12345
    [SUM(UserPoints)] => 12345
)
您要查找的总和位于索引0或列名处,在本例中为
sum(UserPoints)
,因此您可以使用
echo$totalPoints[0]
echo$totalPoints['sum(UserPoints)]
输出它

或者,您可以使用
mysql\u result()
函数。我认为这更符合你的预期。它从结果集中的行中获取单个值。因此,您编写的不是
mysql\u fetch\u array()

$totalPoints = mysql_result($result, 0);
有关
mysql\u result()
的更多信息,请查看

另外,如果您有选择,我建议您不要使用mysql_*函数。一个更新的接口,比如PDO,或者至少是mysqli,会更好。这将取决于你的项目当然。。。如果您使用的是大型遗留代码库,那么可能很难进行更改。但是如果你现在开始,我想你会从更新的库中受益。您可以在本文中看到我的观点和一些关于转换扩展的指导

希望这有助于。。。祝你好运