PHP MYSQL Json 问题

Posted

技术标签:

【中文标题】PHP MYSQL Json 问题【英文标题】:PHP MYSQL Json Issue 【发布时间】:2018-07-13 17:52:35 【问题描述】:

我们有一个简单的 php mysql json api 来向 android app 提供数据

我们有一个修复类别。

所以我们只检查类别是否是这个然后从mysql数据库中获取结果并转换为json

一切正常。从 mysql 获取 url

$stm_row = $stm->fetchAll(PDO::FETCH_ASSOC);

到这里一切正常。数据来自每个类别

然后,我们将数据转换为 JSON:

print(json_encode($stm_row));

但问题是使用 json 打印的只有 1 个类别数据,其余类别数据显示空白

你能检查一下有什么问题吗

【问题讨论】:

在 PHP 中使用 foreachloops 就可以了 这里如何使用循环?以下是我的最终代码。你能按照你的说法编辑和添加循环吗? if($stm_row_count>=1) $stm_row = $stm->fetchAll(PDO::FETCH_ASSOC);打印(json_encode($stm_row)); else print('找不到工作'); 【参考方案1】:

如果你想遍历结果...例如

$stm_row = $stm->fetchAll(PDO::FETCH_ASSOC); 

foreach ($stm_row as $row => $cat) 
      echo  $cat['category_name'];
      

或者如果你已经编码了 JSON,需要先解码,这将返回一个数组......你可以像这样循环遍历......例如

$stm_row = json_encode($stm_row);
$arr = json_decode($stm_row, true);

foreach ($arr as $row => $cat) 
      echo  $cat['category_name'];
      

【讨论】:

你不懂的东西。一切正常。数据以数组形式出现。但是当我们使用 print(json_encode($stm_row));显示 json 数据,然后它只显示 1 个类别的数据。不休息类别 多合一打印(json_encode($stm_row));显示空白数据 var_dump($stm_row); 并验证所有类别都在那里【参考方案2】:

我正在给你简单演示如何使用 json。你可以这样尝试

$data=array();
while($row = mysqli_fetch_array($query)) 
  $data[] = $row['your field name'];

echo json_encode(array("response"=>$data));

【讨论】:

我没有使用 MYSQLI,我们使用的是 PDO 我给你演示了你可以根据需要更改 mysqli 或 pdo 但问题是它将获取 1 行 1 次。我想要一次所有数据

以上是关于PHP MYSQL Json 问题的主要内容,如果未能解决你的问题,请参考以下文章

使用php将大量mysql记录转换为json

PHP/MySQL - JSON 中的嵌套组

从 iOS 获取我的 JSON 以发布到我的 php 文件并插入到 mySQL 时遇到问题

PHP mySql 数据到 JSON 文件

使用 PHP 从 MySQL 结果输出复杂的 JSON

php - 将 mysql 数据转换为 json 对象