通过以下查询,我得到数据库中每个国家/地区每年销售额的总和
$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 ,我得到de error 未捕获TypeError:无法读取属性'metaData 'of null
编辑:
如果值为输出:
[{"year":2017,"value":11600}]
如果不输出只是:
null
如果我直接查询数据库,结果是:
年:
值:
年份应该总是返回结果而值是否等于零?
年:2016年
值:0
答案 0 :(得分:0)
摆脱错误的最佳方法是检查country参数是否已设置,因此在声明$ country_parameter后执行if语句
$country_parameter = //value;
if (!isset($country_parameter)==0){
// do something
}