从mysql创建Json文件

时间:2015-03-12 13:30:08

标签: mysql json

我不能在这个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));




?>  

1 个答案:

答案 0 :(得分:0)

问题是您要覆盖数组键的值:

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

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

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

这样可以保存$resultado['grid']中的成对行和$resultado['material']中未成对的行;

在评论中的信息之后,您可以使用以下代码:

$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));