在PHP中回显表的总和
我在一个名为Points的表中有两列。这两列是UserPoints和UserID 我希望能够回显一个用户拥有的总点数 我有这样的东西,但我觉得不对在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
$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,会更好。这将取决于你的项目当然。。。如果您使用的是大型遗留代码库,那么可能很难进行更改。但是如果你现在开始,我想你会从更新的库中受益。您可以在本文中看到我的观点和一些关于转换扩展的指导
希望这有助于。。。祝你好运