此代码有什么问题?
$data455 = mysql_query("SELECT ROUND(SUM(gainloss), 4) FROM stats WHERE MONTH(date) = MONTH(CURRENT_TIMESTAMP) AND winloss = 'Win'");
$info455 = mysql_fetch_array($data455);
$testarray = array_sum($info455);
echo $testarray;
它不显示正确的总和。我想获得最后一列'winloss'='win'
的总和输出$ testarray给出的是79.5843,但正确的总和是41.6609。
这是我的数据库的样子。
答案 0 :(得分:2)
尝试
mysql_fetch_assoc($data455);
而不是
mysql_fetch_array($data455);
这可以帮到你,因为mysql_fetch_array
会返回通过它获得混合结果的关联和索引数组。
答案 1 :(得分:2)
您不必像查询中那样使用array_sum
已经有了总和
$data455 = mysql_query("SELECT ROUND(SUM(gainloss), 4) AS total FROM stats WHERE MONTH(date) = MONTH(CURRENT_TIMESTAMP) AND winloss = 'Win'");
$info455 = mysql_fetch_array($data455);
echo $info455['total']; //this should give you the desired result
答案 2 :(得分:1)
答案 3 :(得分:1)
看起来是数组和的问题。在那之后看看你的SQL和代码行
$info455 = mysql_fetch_array($data455);
变量$ info455包含类似
的数组$info455['ROUND(SUM(gainloss), 4)'] = <some value>
$info455[0] = <some value>
所以这里你的变量只保留一个值两次。所以array_sum会使值加倍。首先尝试查看您的SQL是否给出了正确的结果以及行数。如果你想要SQL中的多行然后使用PHP求和,那么你必须迭代结果集