【发布时间】:2017-02-21 12:58:21
【问题描述】:
所以我有一个关联数组$_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"}]
如您所见,它有效,但我只得到一个应该是三行的单行。
我的查询有问题吗?
【问题讨论】:
-
为什么要得到三行?!? json格式的意义是将复杂的数据结构转换为单个字符串。换行符没有用。所以问题是:你确定你真的想
json_encode()输出吗? 为什么? -
@arkascha 我的意思是我在数据库中有 3 条记录..
-
好的,那么我建议您手动尝试该查询。您很可能只会在结果集中获得一个条目。
-
DB
3,4,5中的产品 ID 是cart_items的 keys 还是23,5,1的 ID 是cart_item的值?从您的示例中不清楚 -
更新了我的帖子
标签: php mysql arrays json session