将Query String的每个变量添加到数组中

时间:2015-04-13 14:43:57

标签: php sql


我在查询字符串中有以下输出:

add_to_cart.php?product_id=4&product_name=Pizza&quantity=1&additional_id[]=1&additional_quantity[]=3&additional_id[]=4&additional_quantity[]=5

我正在尝试使用每个附加ID及其各自的数量来设置一个数组。每个ID对应于表 extraals 中数据库中的其他产品,我需要为每个ID进行SQL查询以获取价格和附加名称,然后显示价格乘以他们的数量 如果我使用:

foreach ($_GET['additional_id'] as $value)
{
    echo "<p>{$value}</p>";
}

如果输出基于上面的示例查询字符串,我得到:
    1
    4
但我需要在 add_to_cart.php 文件中添加每个ID及其数量在此数组内的ID:

$columns = array
(
    'product_id_session' => $product_id_session,
    'product_id' => $product_id,
    'product_name' => $product_name,
    'product_price' => $product_price,
    'quantity' => $quantity,
    'additional_id' => //Maybe I need a foreach here or another array to add all the additionals of Query String?
    'additional_quantity' => //Here too?
    'additional_name' => //Retrieved from database, like price below
    'additional_price' => //Like additional_name, I will need to connect to database and get the price of each additional ID present in the Query String
);

我试图做的事情如下:

add_to_cart.php?product_id=4&product_name=Pizza&quantity=1&additionals=additional_id[]=1&additional_quantity[]=3&additional_id[]=4&additional_quantity[]=5

这可能是正确的方法吗?也许我可以使用additionals创建一个数组并将其解析为columns数组?以及如何通过SQL additional_price的SQL连接为查询字符串中的每个附加ID获取additional_nameadditionals?这对我来说非常复杂。我感谢任何帮助!

1 个答案:

答案 0 :(得分:0)

尝试

foreach ($_GET['additional_id'] as $key=>$value)
{
    $id = htmlspecialchars($value);
    $qty = htmlspecialchars($_GET['additional_quantity'][$key]);
    echo "<p>ID: $id, Quantity: $qty</p>";
}

这假定additional_idadditional_quantity数组的长度相同,additional_id的每个索引都与additional_quantity的相同索引匹配。

您可能应该使用其他方法来传递这些类型的值。这样做是非常不安全和脆弱的。