嘿伙计们,
我对这个问题感到头疼。 Paypal Ipn发回一系列按数量订购的产品,并将其存储在数据库的订单表中,如1-3,2-2,4-3 这解释如下 - productid为1,数量为3,产量为2,数量为2等。 我很难将所有这些数字和分隔符分开,这样当我点击查看特定订单时,我可以在后端管理面板中显示订购的产品及其数量。 有人可以与我分享他们的智慧,并帮助我,我甚至不知道从哪里开始诚实!即使我将它分解为数组,我仍然可以弄清楚如何从sql查询等中选择产品ID!请帮忙!!!请参阅以下内容:
$sql = "SELECT * FROM orders WHERE id=$order_id";
$result = mysqli_query($conn, $sql);
$row = mysqli_fetch_assoc($result);
$products_ordered = $row['product_id_array'];
当我回复$ products_ordered时,我得到1-3,2-2,4-3
如何从产品表中获取此信息?
答案 0 :(得分:0)
您可以使用以下函数将订单字符串拆分为数组:
function explodeOrders($orders) {
$orders = explode(",", $orders); // Explodes your string, separating by each order
foreach($orders as $key => $order) {
$orders[$key] = explode("-", $order); // Explodes your order into an array separating the id and the count
}
return $orders;
}
然后,执行类似的事情:
var_dump(json_encode(explodeOrders("1-3,2-2,4-3"), JSON_PRETTY_PRINT));
将输出如下内容:
[
[
"1",
"3"
],
[
"2",
"2"
],
[
"4",
"3"
]
]
也就是说,您的orders
数据库组织得不是很好。如果您可以更改它,我建议您以某种方式将订单及其数量分成不同的表,而不是将其存储为字符串。但是,如果你不能这样做的话。