我試圖從查詢字符串中獲取值並將它們添加到數組中。輸出查詢字符串是一樣的東西:
add_to_cart.php?product_id=4&product_name=Pizza&quantity=1&additional_id[]=1&additional_quantity[]=3&additional_id[]=4&additional_quantity[]=5
我越來越各additional_id
和additional_quantity
變量呈現在查詢字符串與下面的代碼。我將每個additional_id
與我在數據庫表加法中的ID進行比較,並將所有數據插入到數組中。在我的文件add_to_cart.php存在文件下面的代碼:多維數組中存在的數據無法正確顯示
if(isset($_SESSION['cart']))
{
while ($row = $stmt->fetch(PDO::FETCH_ASSOC))
{
extract($row);
$columns = array
(
'product_id_session' => $product_id_session,
'product_id' => $product_id,
'product_name' => $product_name,
'product_price' => $product_price,
'quantity' => $quantity,
'additionals' => array()
);
if(isset($_GET['additional_id']) && $_GET['additional_id'] != "")
{
foreach($_GET['additional_id'] as $additional => $value)
{
$additional_id = $value;
if(isset($_GET['additional_quantity'][$additional]))
{
$additional_quantity = $_GET['additional_quantity'][$additional];
if($additional_quantity <= 0 || $additional_quantity > 5)
{
$additional_quantity = null;
}
else
{
$sql2 = "SELECT additional_id, additional_name, additional_price FROM additionals WHERE additional_id LIKE '{$additional_id}'";
$stmt2 = $connection->prepare($sql2);
$stmt2->execute();
while ($row = $stmt2->fetch(PDO::FETCH_ASSOC))
{
extract($row);
$columns['additionals'][]['additional_id'] = $additional_id;
$columns['additionals'][]['additional_name'] = $additional_name;
$columns['additionals'][]['additional_price'] = $additional_price;
$columns['additionals'][]['additional_quantity'] = $additional_quantity;
}
}
}
}
}
$_SESSION['cart'][$product_id_session] = $columns;
}
header('Location: products.php?action=added&product_name=' . $product_name);
}
一旦一切都在cart
SESSION增加,在cart.php頁我想展示的產品與他們的選擇additionals並與數量:
foreach($_SESSION['cart'] as $product)
{
echo "<tr>";
echo "<td>{$product['product_name']}</td>";
echo "<td>${$product['product_price']}</td>";
echo "<td>{$product['quantity']}</td>";
echo "<td>";
foreach($product['additionals'] as $additional)
{
echo "<p>{$additional['additional_quantity']}x{$additional['additional_name']} - {$additional['additional_price']}</p>";
}
echo "</td>";
echo "</tr>";
}
但我做錯了什麼,我認爲這兩個代碼無法正常工作。
我的輸出不好意思,這樣的事情:
上午我通過正確的方式做這件事?也許我沒有循環與foreach
正確,或者加法沒有被添加成功?對不起,我從未使用過多維數組。有沒有辦法做我想要的?謝謝!
試着改變你的一切'$列[ 'additionals'] [] ...''到$ columns ['additionals'] [$ additional] ...' – Sean
@Sean謝謝你,非常感謝!這個竅門!我想從上週五開始做這個!一個偉大的擁抱! – Dyan