数据库查询结果如下:
要把它转化为如下格式的json,第一个属性是日期对应的unix时间戳,第二个是sales
<?phpinclude_once 'DB_connmssql.php';header("Content-Type:text/html;charset=utf-8"); $sql_initbest=" select outdate,SUM(nb*endprice) sales from BI_salewhere endprice<>0group by outdate"; $query = mssql_query($sql_initbest); while($row=mssql_fetch_array($query)){ array_push($result["data"] , $row); } echo json_encode($result); ?>
不知道该怎么转日期格式,拼接的json格式也不对求大神指教下
回复讨论(解决方案)
sales 列的值怎么变小啦?
sales 列的值怎么变小啦?
不是变了...是不知道怎么拼接json
我现在是拼接字符串 但日期格式不和要求,
<?phpinclude_once 'DB_connmssql172.php';header("Content-Type:text/html;charset=utf-8"); $sql_initbest=" select outdate,SUM(nb*endprice) sales from BI_salewhere endprice<>0group by outdate"; $query = mssql_query($sql_initbest); $items=array(); echo "{ 'data':"; while($row=mssql_fetch_array($query)){ echo "[".strtotime($row["outdate"]).",".$row["sales"]."],\n"; } echo "]}"; ?>
while($row=mssql_fetch_array($query)){ $result["data"][] = array( strtotime($row["outdate"]).'000', $row["sales"] );}echo json_encode($result);
拚成??呢?
$arr = array( 'data' => array( array('1161043200000,74.29'), array('1161043200001,74.53'), array('1161043200002,78.99'), array('1161043200003,79.95') ));echo json_encode($arr);
while($row=mssql_fetch_array($query)){ $result["data"][] = array( strtotime($row["outdate"]).'000', $row["sales"] );}echo json_encode($result);
格式不对,里面的时间戳和sales要求是数字类型的
不可能的!贴出记得输出结果
按 json 格式规范,无论是键还是值都应用双引号括起(虽然允许数值类型不用引号)
所以你不能从字面上判断某个数字串的数据类型
如果你要数字,可以使用floatval转成数字。
while($row=mssql_fetch_array($query)){ $result["data"][] = array( floatval(strtotime($row["outdate"]).'000'), floatval($row["sales"]) );}echo json_encode($result);
输出这个是什么?$result["data"]
感谢大家!
while($row=mssql_fetch_array($query)){ $result["data"][] = array( strtotime($row["outdate"]).'000', ceil($row['sales']) ); } echo json_encode($result);
结果为:
highcharts使用是要把json中的双引号去掉。