所以我有一个关联数组$_SESSION['cart_items'])
这是我print_r($_SESSION['cart_items'])
时的当前输出:
Array
(
[3] => 23
[5] => 5
[4] => 1
)
在上面的输出中,第一个例如[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"}]
正如你所看到的那样,虽然我只得到一行,但应该是三行。
我的查询有问题吗?
答案 0 :(得分:2)
您显示会话数组中的数组键与数据库中的implode()
匹配。 implode(',', array_keys($_SESSION['cart_items']))
内爆/连接数组中的值。所以你需要破坏密钥:
implode(',', array_flip($_SESSION['cart_items']))
或翻转阵列:
public class LinkedList<T extends Node<T>> {