【问题标题】:PHP MYSQL Json IssuePHP MYSQL Json 问题
【发布时间】: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('找不到工作'); } }

标签: php mysql json pdo


【解决方案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 次。我想要一次所有数据
猜你喜欢
  • 2014-08-25
  • 2020-01-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-12-05
  • 1970-01-01
  • 1970-01-01
  • 2011-07-09
相关资源
最近更新 更多