php pdo json编码数组
您好,我想在数据库中的菜单内容数据中打印“title”,但我得到一个错误。我对json知之甚少,但经过我的研究,类似的东西出现了,错误代码如下php pdo json编码数组,php,json,Php,Json,您好,我想在数据库中的菜单内容数据中打印“title”,但我得到一个错误。我对json知之甚少,但经过我的研究,类似的东西出现了,错误代码如下 Warning: Illegal string offset 'title' in menu.php on line 59 mysql数据库数据 菜单内容 [{"title":"HelloWord","address":"HelloAdres","phone&qu
Warning: Illegal string offset 'title' in menu.php on line 59
mysql数据库数据
菜单内容
[{"title":"HelloWord","address":"HelloAdres","phone":"HelloPhone","submenu":[{"email":"HelloSubmenuEmail","phone":"HelloSubmenuPhone","fax":"HelloSubmenuFax"}]}]
pdo
$query = $db->prepare('SELECT * FROM menu ORDER BY menu_id DESC');
$query->execute();
$rows = $query->fetchAll(PDO::FETCH_ASSOC);
表格
<tbody>
<?php foreach ($rows as $row): ?>
<tr data-id="<?= $row['menu_id'] ?>">
<td width="90"><?= $row['menu_id'] ?></td>
<td width="90"><?= $row['menu_title'] ?></td>
<td><?php json_decode($row['menu_content']['title'],true) ?></td>
<td><?= $row['menu_date'] ?></td>
</tr>
<?php endforeach; ?>
</tbody>
在尝试使用JSON列的各个部分之前,应该先转换JSON列
<tbody>
<?php
foreach ($rows as $row):
$menu = json_decode($row['menu_content']);
?>
<tr data-id="<?= $row['menu_id'] ?>">
<td width="90"><?= $row['menu_id'] ?></td>
<td width="90"><?= $row['menu_title'] ?></td>
<td><?= $menu[0]->title ?></td>
<td><?= $row['menu_date'] ?></td>
</tr>
<?php
endforeach;
?>
</tbody>
在尝试使用JSON列的各个部分之前,应该先转换JSON列
<tbody>
<?php
foreach ($rows as $row):
$menu = json_decode($row['menu_content']);
?>
<tr data-id="<?= $row['menu_id'] ?>">
<td width="90"><?= $row['menu_id'] ?></td>
<td width="90"><?= $row['menu_title'] ?></td>
<td><?= $menu[0]->title ?></td>
<td><?= $row['menu_date'] ?></td>
</tr>
<?php
endforeach;
?>
</tbody>
尝试是代码:
<tbody>
<?php foreach ($rows as $row)
{
$menu_content=json_decode($row['menu_content'],true)
?>
<tr data-id="<?= $row['menu_id'] ?>">
<td width="90"><?= $row['menu_id'] ?></td>
<td width="90"><?= $row['menu_title'] ?></td>
<td><?= $menu_content[0]['title'];?></td>
<td><?= $row['menu_date'] ?></td>
</tr>
<?php
}
?>
</tbody>
尝试是代码:
<tbody>
<?php foreach ($rows as $row)
{
$menu_content=json_decode($row['menu_content'],true)
?>
<tr data-id="<?= $row['menu_id'] ?>">
<td width="90"><?= $row['menu_id'] ?></td>
<td width="90"><?= $row['menu_title'] ?></td>
<td><?= $menu_content[0]['title'];?></td>
<td><?= $row['menu_date'] ?></td>
</tr>
<?php
}
?>
</tbody>
$row['menu\u content']
包含JSON,而不是标题
。还要将其返回到变量,否则它不会对您有任何帮助。您试图调试该问题的原因是什么?$row['menu\u content']
包含JSON,而不是title
。还要将其返回到变量,否则它对您没有任何帮助。您尝试过调试问题吗?一个好的答案包括解释代码解决了什么问题以及为什么要这样做,而不仅仅是“尝试一下”。Inventor Bala您在吗?是的,Mesut。告诉我你想要什么。一个好的答案包括解释代码解决了什么问题以及为什么,而不仅仅是“试试这个”。发明家巴拉你在吗?是的,梅苏特。告诉我您想要什么。那么如何获取子菜单电子邮件?例如$menu[0]->submenu[0]->电子邮件
但作为一个数组,我假设您可能有多个,因此每个循环中都会有另一个循环。Riggsfolly您在吗?@Mesut如果您有不同的问题,您应该发表一篇新文章。那么如何获取子菜单电子邮件?例如$menu[0]->子菜单[0]->电子邮件
但作为一个数组,我假设您可能有多个,因此另一个foreach循环将处于有序状态RiggsFolly您在吗?@Mesut如果您有不同的问题,您应该发表新的帖子。