gpt4 book ai didi

php - 从同一个表中的行对象创建数组::PHP + SQL

转载 作者:行者123 更新时间:2023-11-29 11:59:12 25 4
gpt4 key购买 nike

我有一个像这样的数组

id | userID | item
1 ! 1 | {"property": 0, "property": "string"}
2 ! 1 | {"property": 4, "property": "string2"}

我希望返回一个数组,如下所示:

[{
"property": 0,
"property": "string"
},
{
"property": 4,
"property": "string2"
}]

无论我如何尝试,我似乎都无法让它正常工作。要么我得到一个完整的字符串,以便数字值被转换,要么我得到一个到处都有\"的对象。目前我有这个代码

if ($query = $mysqli->query("SELECT item FROM userItems WHERE userID = 'id' "))
{
while ($row = $query->fetch_object())
{
$result->items[count($result)] = $row;
}
}

$test = stripslashes(json_encode($result->items));

返回这个...

{"1":{"item":"{"property":"0","property":"string"}"}}

几个小时以来一直试图解决这个问题,但无法解决

最佳答案

我尝试了你的代码,主要有两件事:

  1. 您正在构建一个关联数组的数组,但关联数组往往会在代码中用后者覆盖相同的关联键 - 在您的情况下,两个键都是 property ,

  2. 您从数据库 (userItems.item) 检索的数据似乎已经是 JSON 编码,因此您需要调用 json_decode()某个地方而不是打电话 json_encode()再次;解码你的$row->item ( $result->items[count($result)] = json_decode($row->item); ) 似乎可以解决问题。

作为旁注,您应该考虑包装您的 id SQL 查询中的参数进入 mysqli_real_escape_string()或者。

请告诉我这是否有帮助,您现在就可以看到所需的结果。

关于php - 从同一个表中的行对象创建数组::PHP + SQL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32660744/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com