【问题标题】:Creating Json file from mysql从mysql创建Json文件
【发布时间】:2015-03-12 13:30:08
【问题描述】:

我不能在这个 json 中得到一个以上的回报。当原始查询返回 90k 结果时。

我不知道发生了什么。

我得到的回报也没有按应有的组织。它返回以下内容

{"材料":["R8190300000","0"],"网格":["R8190300000","0"]}

很抱歉问这个问题,我一直在寻找答案,但无法在互联网上得到答案。

<?php


$link = mysqli_connect("localhost","blablabla","blablabla","blablabla");

if (mysqli_connect_error()) {
die("Could not connect to database");
}

$query =" SELECT material,grid FROM ZATPN";


if( $result = mysqli_query( $link, $query)){

while ($row = mysqli_fetch_row($result))  {


    $resultado['material']=$row;
    $resultado['grid']=$row;


}    

} else {

echo"doesnt work";

}


file_put_contents("data.json", json_encode($resultado));




?>  

【问题讨论】:

  • 关注while 块中的代码。这是您无法创建所需数据结构的地方。
  • 是的,让我们猜个谜,或者告诉他他在每一行都覆盖了他的结果。
  • ... 他将整行添加到组件材料和网格中,解释结果 {"material":["R8190300000","0"],"grid":[" R8190300000","0"]}

标签: mysql json


【解决方案1】:

问题是你覆盖了数组键的值:

$resultado['material']=$row;
$resultado['grid']=$row;

最后你将只有最后 2 行;我建议你使用类似的东西:

$resultado['material'][] = $row;
$resultado['grid'][] = $row;

这将为您节省 $resultado['grid'] 中的配对行和 $resultado['material'] 中未配对的行;

在cmets中的信息之后你可以使用这个代码:

$allResults = array();
while ($object = mysqli_fetch_object($result))  {

    $resultado['id'] = $object->id;
    $resultado['name'] = $object->name;
    $resultado['item'] = $object->item;
    $resultado['price'] = $object->price;
    $allResults[] = $resultado;
}    

file_put_contents("data.json", json_encode($allResults));

【讨论】:

  • 我需要的结果是这样的:[ { "id": 0, "name": "Item 0", "price": "$0" }, { "id": 1, "name": "Item 1", "price": "$1" },我得到的是 {"material":[["02390M00101","42"],["02390M00101","41"],[" 02390M00101","40"],
  • @Madehhh 我认为这应该是一个例子,而不是一个字面的解决方案。
猜你喜欢
  • 2016-06-30
  • 2017-11-13
  • 1970-01-01
  • 2013-06-12
  • 2018-12-21
  • 2021-12-08
  • 2023-04-04
  • 2019-05-11
  • 1970-01-01
相关资源
最近更新 更多