从表中的 json 中获取单个项目

Posted

技术标签:

【中文标题】从表中的 json 中获取单个项目【英文标题】:Fetch individual item from json in a table 【发布时间】:2018-07-04 08:40:59 【问题描述】:

我有一个包含大量用户的 mysql 表,每个用户都有一个 “详细信息”

用户数据示例:

["D11","E20","E70","E50","D50","G32"]

每个用户可能有更多或没有数据。

目前我通过一个简单的方法为每个用户获取这些数据

while ($row = pg_fetch_array($resultado)) 
    $details = $row["details"];

我想要的是能够从这个“数组”或“json”中选择 1、2、3 和 4 项,不确定它是什么或如何正确格式化它。

我希望能够将第一项保存在自定义变量中,例如

MainDetail = "D11";

我尝试使用 json 编码,序列化,但没有运气:/

【问题讨论】:

你试过$mainDetail = $row["details"][0]吗? 你的行details里面有序列化数据还是json数据? 请显示更多您的代码。我认为您使用 ajax 代码和一些 php 函数将 json 编码发送到 ajax。需要帮忙。 我发帖的方式,就是这样。在 varchar 类型的数据中。 保存了哪些数据? ["D11","E20","E70","E50","D50","G32"]->正是这个? 【参考方案1】:

实际上你已经在列中保存了字符串,你认为它要么是一个数组,要么是序列化/json数据。

请执行以下操作:-

while ($row = pg_fetch_array($resultado)) 
    echo $details = str_replace(array('[','"'),'',explode(",",$row["details"])[0]);

【讨论】:

我爱你,伙计!效果很好! @BWayne 很高兴为您提供帮助。但是尝试为此列创建单独的表,并根据user_id 将每个数据保存为单行。这称为规范化,这是正确的方法。或至少在此特定列中以序列化格式保存数据,而不是字符串格式。数据处理将变得容易

以上是关于从表中的 json 中获取单个项目的主要内容,如果未能解决你的问题,请参考以下文章

如何从表中获取通知给会话用户

使用 select from 从表中获取值以存储在插入表中

使用模型内的query()方法从表中获取单个值

从表中选择过期和未过期的项目

我想从表中获取行 ID

从表中的不同条件中选择COUNT