热搜:NVER node 开发 php

php将数据库查询结果转换为json格式

2024-08-18 15:00:01
php将数据库查询结果转换为json格式

数据库查询结果如下:
要把它转化为如下格式的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中的双引号去掉。