PHP json_编码仅返回单行
因此,我有一个关联数组PHP json_编码仅返回单行,php,mysql,arrays,json,session,Php,Mysql,Arrays,Json,Session,因此,我有一个关联数组$\u SESSION['cart\u items'])这是我打印时的当前输出($\u SESSION['cart\u items']): 在上面的输出中,第一个示例[3]=>23,其中[3]是id,23是我从表格中输入的数量: 我目前的数据: 请注意,在上图中,“数量”列与我在表单中输入的数量不同 到目前为止,这是我尝试过的代码: $statement = $conn->query("SELECT id, name, price, quantity FROM pr
$\u SESSION['cart\u items'])
这是我打印时的当前输出($\u SESSION['cart\u items']):
在上面的输出中,第一个示例[3]=>23,其中[3]是id,23是我从表格中输入的数量:
我目前的数据:
请注意,在上图中,“数量”列与我在表单中输入的数量不同
到目前为止,这是我尝试过的代码:
$statement = $conn->query("SELECT id, name, price, quantity FROM product WHERE id IN (".implode(',',$_SESSION['cart_items']).")");
while($row = $statement->fetch(PDO::FETCH_ASSOC)) {
$data[] = $row;
}
print json_encode($data);
这是输出:
[{"id":"5","name":"ballpen","price":"23","quantity":"13"}]
正如你们所看到的,虽然我只得到一行,应该是三行
我的查询有问题吗?您显示会话数组中的数组键与数据库中的
id
s匹配<代码>内爆()内爆/合并数组中的值。因此,您需要内爆键:
implode(',', array_keys($_SESSION['cart_items']))
或翻转阵列:
implode(',', array_flip($_SESSION['cart_items']))
你为什么要坐三排?!?json格式的意义在于将复杂的数据结构转换为单个字符串。在那种情况下断线是没有用的。所以问题是:你确定你真的想
json\u encode()
输出吗?为什么?@arkascha我的意思是我在数据库中有3条记录..好的,那么我建议你手动尝试这个查询。您很可能在结果集中只得到一个条目。产品id在DB3,4,5
中是否与cart\u项目的键一样,或者id23,5,1
与cart\u项目的值一样?你的例子不清楚我的帖子更新得这么快。它起作用了!因为我在angular.dependens中使用它,所以我如何访问这些值呢<代码>$ids=array_key($_SESSION['cart_items'])$数量=$\会话['cart\u items']
implode(',', array_flip($_SESSION['cart_items']))