gpt4 book ai didi

php - MySQL 到 JSON,如何获得正确的格式?

转载 作者:行者123 更新时间:2023-11-29 11:27:44 24 4
gpt4 key购买 nike

因此,我使用 PHP 脚本将 MySQL 输出为 JSON,但我无法弄清楚如何输出正确的 JSON 格式。

这是 PHP 脚本:

$sql_query = "SELECT * FROM DiseaseData"; 
$res_sql = mysql_query($sql_query) or die(mysql_error());
$arr = array();


if(mysql_num_rows($res_sql) > 0){

ini_set('memory_limit', '-1');
while($row_sql = mysql_fetch_assoc($res_sql)){

$arr[] = $row_sql;

}
$json = json_encode($arr);
$file = '../../files/json/DiseaseData.json';
file_put_contents($file, $json);

}
ini_set('memory_limit', '-1');

这是输出的 JSON 格式:

[{
"ID": "1",
"Magnitude": "0.842",
"County": "Alameda",
"Disease": "E. coli O157",
"lat": "37.7652",
"lng": "-122.242"
}, {
"ID": "2",
"Magnitude": "1.520",
"County": "Alameda",
"Disease": "HIV",
"lat": "37.7652",
"lng": "-122.242"
}]

这是我想要的 JSON 格式:

{
"columns":[{
"fieldName" : "ID",
"position" : 1
},
{
"fieldName" : "Magnitude",
"position" : 2
},
{
"fieldName" : "County",
"position" : 3
},
{
"fieldName" : "Disease",
"position" : 4
},
{
"fieldName" : "lat",
"position" : 5
},
{
"fieldName" : "lng",
"position" : 6
},]
"data": [
[ 1, 0.842, "Alameda", "E. coli O157", 37.7652, -122.242],
[ 2, 1.520, "Alameda", "HIV", 37.7652, -122.242]
]
}

最佳答案

解决方案如下:

  • 创建两个数组,$columns$data
  • $columns数组中,存储位置和关联的字段名称
  • $data 数组中,使用 while 循环插入所有数据行。
  • 最后,将两个数组插入到 $result 数组中,然后对其应用 json_enocde()

代码如下:

// your code

if(mysql_num_rows($res_sql) > 0){
$columns = $data = array();
$max_columns = mysql_num_fields($res_sql);

for($i=0; $i < $max_columns; $i++){
$columns[] = array('fieldName' => mysql_field_name($res_sql, $i), 'position' => $i+1);
}

while($row_sql = mysql_fetch_assoc($res_sql)){
$data[] = array_values($row_sql);
}
$result = array('columns' => $columns, 'data' => $data);
$json = json_encode($result);

// your code
}
<小时/>

注意:不要使用 mysql_* 函数,它们从 PHP 5.5 开始已被弃用,并在 PHP 7.0 中被完全删除。使用mysqlipdo反而。 And this is why you shouldn't use mysql_* functions .

关于php - MySQL 到 JSON,如何获得正确的格式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37909584/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com