0

我正在尝试检索一列的总和并用 JSON 解析它。

要检索我使用的总和:

SELECT SUM(price) FROM `Fuelconsumption` WHERE `date` like '%09-2012%'

当我直接在我的 SQL Server 中使用这个命令时,我得到一个图形结果,当我尝试通过 JSON 解析它时它不起作用。

这是我的 JSON 和 PHP 代码:

case 'getstats':

                    $query="SELECT SUM(price) FROM `Fuelconsumption` WHERE `date` like '%09-2012%'";
                    $result = mysql_query($query);

                    $json = array();
                        while($row = mysql_fetch_array($result))
                        {
                                $json['price']=$row['price'];
                        }
                        print json_encode($json);
                    mysql_close();
    break;

这是我的 JS:

xmlhttp = new XMLHttpRequest()

xmlhttp.onreadystatechange = function () {
    if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {
        var jsontext = xmlhttp.responseText;
        var json = JSON.parse(jsontext);



        console.log(jsontext)



    }
}

xmlhttp.open("GET", "mysql.php?p=getstats" + "&date=09-2012", true);
xmlhttp.send();
4

3 回答 3

2

尝试

$query="SELECT SUM(price) AS price FROM `Fuelconsumption` WHERE `date` like '%09-2012%'";

代替

$query="SELECT SUM(price) FROM `Fuelconsumption` WHERE `date` like '%09-2012%'";

另外,为什么你的名字是 jQuerybeast 却使用普通的 Javascript 来创建 Ajax 请求而不是 jQuery?:P

于 2012-11-20T11:34:49.650 回答
1

这是因为价格总和的列在 $row 中不会被命名为价格,它将是 sum(price)。如果您想确定名称,请更改您的 SQL 以容纳别名:

SELECT SUM(price) AS sum_of_price FROM `Fuelconsumption` WHERE `date` like '%09-2012%'

然后将其用作$row['sum_of_price'].

于 2012-11-20T11:37:04.950 回答
-1

尝试将您的查询更改为:

SELECT SUM(price) price
FROM `Fuelconsumption` 
WHERE `date` like '%09-2012%'
于 2012-11-20T11:36:42.160 回答