如何从paypal ipn中分解产品ID和数量字符串

时间:2016-12-07 14:39:28

标签: php mysql mysqli paypal paypal-ipn

嘿伙计们,

我对这个问题感到头疼。 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

如何从产品表中获取此信息?

1 个答案:

答案 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数据库组织得不是很好。如果您可以更改它,我建议您以某种方式将订单及其数量分成不同的表,而不是将其存储为字符串。但是,如果你不能这样做的话。