-1
    $result = mysql_query("SELECT indvsum.sum1 + indvsum.sum2
    FROM (SELECT SUM(Cash) AS sum1,
                 SUM(Bank) AS sum2
          FROM players) indvsum");

    echo $result; 

出于某种原因,这将返回资源 ID #4。

如何获得 sum1 + sum2 返回的结果?

4

6 回答 6

1

这是预期的行为。

请查看手册以获取有关如何获取行的示例:

mysql_query

这是签名:

resource mysql_query ( string $query [, resource $link_identifier = NULL ] )

为了获取您应该使用的行

mysql_fetch_array

或者

mysql_fetch_assoc

例如。

于 2012-05-22T15:03:45.360 回答
1

因为那是 mysql_query 函数的标准输出。它返回与该查询相关的标识符。要获取选定的行,请使用 mysql_fetch_array($result) 或 mysql_fetch_row($result)

于 2012-05-22T15:04:23.247 回答
1

资源 id #4 被返回,因为$result它是一个数组。

举个例子:

$q_example = "SELECT indvsum.sum1 + indvsum.sum2 AS `aSUM`
                  FROM (SELECT SUM(Cash) AS sum1, SUM(Bank) AS sum2 FROM players) indvsum";
$rsexample = mysql_query($q_example, $DB) or die(mysql_error());
$row_rsexample = mysql_fetch_assoc($rsexample);

echo $row_rsexample['aSUM'];

...应该得到你正在寻找的东西。

于 2012-05-22T15:06:10.140 回答
0

你为什么不做

SELECT SUM(Cash) AS sum1,
       SUM(Bank) AS sum2
FROM players;

在 php 中分配这两个值,然后添加它们。

或者

利用mysql_fetch_row

于 2012-05-22T15:05:11.523 回答
0

利用mysql_fetch_array

$result = mysql_query("SELECT indvsum.sum1 + indvsum.sum2
FROM (SELECT SUM(Cash) AS sum1,
             SUM(Bank) AS sum2
      FROM players) indvsum");

$arr = mysql_fetch_array($result);

print_r($arr); // echo $result; 
于 2014-01-23T15:04:46.073 回答
-1
$values = mysql_fetch_array($result);                      
var_dump($values);
于 2014-05-26T14:11:41.053 回答