在PHP中回应表的总和

Bon*_*nxy 5 php mysql database sum

我在一个名为Points的表中有2列.2列是UserPoints和UserID.

我希望能够回显用户拥有的总积分数.

我有类似的东西,但我认为没错.

$getTotalPoints = mysql_query("SELECT SUM(UserPoints) FROM `Points` WHERE `UserID` = '1'") or die(mysql_error()); 
$totalPoints = mysql_fetch_array($getTotalPoints);
Run Code Online (Sandbox Code Playgroud)

当我通过回显"$ totalPoints"来回应上述陈述时,我得到"数组".

有人知道正确的查询吗?

Tim*_*thy 4

你得到的是Array因为这就是存储在$totalPoints. 仔细查看您的代码,您会发现您使用了该mysql_fetch_array()函数,该函数以数组形式从结果集中检索一行结果。如果您var_dump()这样做$totalPoints,您将看到以下内容:

Array
(
    [0] => 12345
    [SUM(UserPoints)] => 12345
)
Run Code Online (Sandbox Code Playgroud)

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

或者,您可以使用该mysql_result()功能。我认为这更符合您期望的行为。它从结果集中的行中获取单个值。所以,而不是mysql_fetch_array()你写的:

$totalPoints = mysql_result($result, 0);
Run Code Online (Sandbox Code Playgroud)

有关更多信息mysql_result(),请查看PHP 文档

顺便说一句,如果可以的话,我建议不要使用 mysql_* 函数。像 PDO 这样的新接口,或者至少是 mysqli,会更好。当然,这取决于您的项目......如果您正在使用大型遗留代码库,则可能很难更改。但如果您现在开始,我认为您会从新的库中受益。您可以在我写的这篇文章中查看我的观点和有关转换扩展的一些指导。

希望这有帮助...祝你好运!