Php 数组和给出了错误的值
这个代码有什么问题Php 数组和给出了错误的值,php,mysql,Php,Mysql,这个代码有什么问题 $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; 它没有显示正确的总和。我想得
$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
下面是我的数据库的外观
mysql\u fetch\u数组默认情况下以数字和关联数组的形式返回mysql中的数据。通过这样做,你的价值实际上翻了一番。更改为mysql_fetch_assoc(),然后查看结果
mysql\u fetch\u数组默认情况下以数字和关联数组的形式返回mysql中的数据。通过这样做,你的价值实际上翻了一番。更改为mysql_fetch_assoc(),然后查看结果
看起来是数组和的问题。查看SQL和之后的代码行
$info455 = mysql_fetch_array($data455);
变量$info455包含如下数组
$info455['ROUND(SUM(gainloss), 4)'] = <some value>
$info455[0] = <some value>
$info455['ROUND(SUM(gainloss),4)]=
$info455[0]=
所以这里的变量只保存一个值两次。因此,数组_sum将使值加倍。首先尝试查看SQL是否给出了正确的结果以及有多少行。如果希望从SQL中获得多行,然后使用PHP求和,则必须在结果集上迭代,这看起来是数组求和的问题。查看SQL和之后的代码行
$info455 = mysql_fetch_array($data455);
变量$info455包含如下数组
$info455['ROUND(SUM(gainloss), 4)'] = <some value>
$info455[0] = <some value>
$info455['ROUND(SUM(gainloss),4)]=
$info455[0]=
所以这里的变量只保存一个值两次。因此,数组_sum将使值加倍。首先尝试查看SQL是否给出了正确的结果以及有多少行。如果希望从SQL中获得多行,然后使用PHP求和,则必须在结果集上迭代
mysql_fetch_assoc($data455);
代替
mysql_fetch_array($data455);
这可能会对您有所帮助,因为mysql\u fetch\u array
同时返回关联数组和索引数组,您通过它可以得到混合的结果。试试看
mysql_fetch_assoc($data455);
代替
mysql_fetch_array($data455);
这可能会对您有所帮助,因为
mysql\u fetch\u array
同时返回关联数组和索引数组,您可以通过它获得混合结果。您不必使用数组\u 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
您不必使用
array\u 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
您似乎要对列求和两次,一次是在查询中,另一次是在php中。这真的是您想要的吗?您似乎要对列求和两次,一次在查询中,一次在php中。这真的是你想要的吗?