Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/gwt/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 总和值-反总和等于零时的输出错误_Mysql_Sum_Prepared Statement - Fatal编程技术网

Mysql 总和值-反总和等于零时的输出错误

Mysql 总和值-反总和等于零时的输出错误,mysql,sum,prepared-statement,Mysql,Sum,Prepared Statement,通过下面的查询,我得到数据库中每个国家每年的销售额总和 $country_parameter = $_REQUEST['parameter']; $query = "SELECT YEAR(sl.year_sales) AS year, COALESCE(SUM(sl.value_sales),0) AS value FROM sales sl LEFT JOIN country co

通过下面的查询,我得到数据库中每个国家每年的销售额总和

   $country_parameter = $_REQUEST['parameter'];

   $query = "SELECT YEAR(sl.year_sales) AS year,
                       COALESCE(SUM(sl.value_sales),0) AS value
                       FROM sales sl LEFT JOIN country co
                       ON sl.id_country = co.id_country
                       WHERE parameter = ?
                       GROUP BY year
                       ORDER BY year";

    if($statement = $conexao->prepare($query)){
        $statement->bind_param("i", $country_parameter );
        $statement->execute();

        $result = $statement ->get_result();

        while($data = $result->fetch_assoc()){
            $output[] = $data;
        }

        echo json_encode($output);

    $conexao->close();
问题:当没有销售额且总和等于零时,在客户端,输出仅返回null,并且我得到了未捕获的deerror TypeError:无法读取null的属性“metaData”

编辑:

如果输出值为:

[{"year":2017,"value":11600}]
如果不是,则输出仅为:

null
如果我直接查询数据库,结果是:

年份:

价值:

一年是否应该总是返回一个结果,并且值等于零

年份:2016年


value:0

消除错误的最佳方法是检查country参数是否已设置,以便在声明$country\u参数后执行if语句,如下所示

$country_parameter = //value;
if (!isset($country_parameter)==0){
// do something 
}

所以你是说如果1900年墨西哥没有销售;“您没有记录,这会引发错误吗?是的,是xQbert。我编辑了我的帖子。我选中了,$country_参数始终有一个对应于特定国家的数值。”。