【问题标题】:Mysql as Json phpMysql 作为 Json php
【发布时间】:2015-12-23 16:51:07
【问题描述】:

我希望将以下输出作为 Json:

{
      "test": [
      {
        "Name" : "Alfreds Futterkiste",
        "City" : "Berlin",
        "Country" : "Germany"
      },
      {
        "Name" : "Berglunds snabbköp",
        "City" : "Luleå",
        "Country" : "Sweden"
      },
      {
        "Name" : "Centro comercial Moctezuma",
        "City" : "México D.F.",
        "Country" : "Mexico"
      }
    ]
}

我通过这段代码在 php 中工作:

$arr = array(
"test" => array(
    array(
        "Name" => "Test",
        "City" => "Test",
        "Country" => "Test"
    ),
    array(
        "Name" => "Test",
        "City" => "Test",
        "Country" => "Test"
    ),
    array(
        "Name" => "Test",
        "City" => "Test",
        "Country" => "Test"
    ),
)
);
echo json_encode($arr); 

但是现在,我正在从服务器获取数据。我希望这个数据看起来与上面的 json 完全一样。如何用从每一行提取的数据替换数组?


我通过以下代码从服务器获取数据:
$sql = "SELECT * FROM Customer";
$result = $conn->query($sql);

if ($result->num_rows > 0) {
// output data of each row
while($row = $result->fetch_assoc()) {

    $Name1[] = $row["Name1"];
    $Land[] = $row["Land"];
    $City[] = $row["City"];
}

} else {
    $returnValue["RecordsExisting"] = "False";
}


谢谢

【问题讨论】:

  • 请编辑您的问题以显示您如何从服务器获取数据。
  • 本站不存在教你如何完成编程任务。如果您尝试过此操作并遇到特定问题,您应该询问相关问题。
  • 不要只是投反对票吗?这没有任何意义,因为我没有投反对票,而是留下了评论,这正是你告诉我要做的。
  • 问题是你没有向我们展示你尝试了什么。你刚才说,告诉我该怎么做我需要的东西。
  • 但是我已经向您展示了我在代码中尝试过的内容?我不明白我的问题的问题...您的意思是我没有包含用于从服务器获取结果的代码?

标签: php mysql json web-services get


【解决方案1】:

试试这样的:

$arr = [];
while($row = $result->fetch_assoc()) {
    $r = [];
    $r['Name'] = $row["Name1"];
    $r['City'] = $row["City"];
    $r['Country'] = $row["Land"];
    $arr[] = $r;
}

然后

echo json_encode($arr); 

请注意,此不包括从一开始就包含test 键。


现在,如果你真的需要test,就这样做:
$foo = array('test' => $arr);
echo json_encode($foo); 


(未测试,但是...) 由于您使用的是我认为是 mysqli 的fetch_assoc,因此您无需更改密钥。您可以利用一种解决方法。 如果你像这样使用select,你可能会得到相同的结果(它可能是小写的):
SELECT Name1 as Name, City, Land as Country FROM Customer;

您可以查看this 页面中的一些别名示例...

这样你可以:

while(...
    $arr[] = array($row["Name"], $row["City"], $row["Country"]);
)
// 'test' add part
echo ...

【讨论】:

  • 是的,我得到了以下输出,每个用户的城市、国家和名称,但围绕它我需要测试(见上文)。我如何实现它?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-09-27
  • 1970-01-01
  • 1970-01-01
  • 2017-04-10
相关资源
最近更新 更多