2010-10-01 50 views
0

首先,我應該澄清標題,讓你真正明白我想要做什麼。將特定值寫入數據庫X次?

我正在製作購物車ish腳本,但它有點不同,因爲每次都會購買所有產品(幾乎總是)。因此,我認爲最好將所有項目都列出來,然後讓客戶選擇他們想要的每種產品的數量。

它會是這個樣子:

-- Name ------------------------- Amount -- 
-- A random product ------------- 15 ------ 
-- Another random product ------- 2 ------- 
-- And a third one --- ---------- 19 ------ 
-- ------------------------------ --------- 
-- ------------------------------ SUBMIT -- 

的問題是,我不知道怎麼寫到數據庫中。或者更具體地說,我不知道如何提交數據的方式,我得到所有選定的產品,以及每個數組的數量。我以後可能會在數據庫中添加更多產品,因此我無法將其硬編碼。

我無法在一個輸入中發佈兩個值,這太糟糕了。如果我能做到這一點,我可以將ID和金額作爲兩個不同的值。

任何想法如何做到這一點?

回答

0

用管道「|」連接productID和qty,所以這將是

的productId = 14

數量= 3

插入值= 14 | 3

那麼你的數據庫抓取後,您可以通過爆炸的數據 「|」並且具有part1 = 14和part2 = 3

+0

我認爲藏漢的,但不會真好看。而且我必須指示用戶把產品的ID放在第一位等等,嘿。還有什麼想法? – Nike 2010-10-01 22:03:53

+0

-1。錯綜複雜(並且易碎)的解決方案 – Wrikken 2010-10-01 23:26:43

1

當您創建輸入字段時,請使用數組作爲名稱,產品ID用作關鍵字。

例如(其中$product_id是該量對應於該產品的ID):

<input type="text" name="amounts[<?=$product_id?>]"> 

然後在PHP,形式發佈後,$_POST['amounts']將是一個陣列,其中所述鍵是產品ID和值是實際金額。你不需要做任何特別的事情發生;默認情況下,PHP會識別出包含[]的GET/POST數據應該放入一個數組中。

然後,你可以遍歷這個數組來更新數據庫:

foreach ($_POST['amounts'] as $product_id => $amount) 
{ 
    if (!empty($amount)) // was a value given for this amount? 
    { 
    // build your insert query here 
    } 
} 
+0

非常感謝!現在我太累了,無法實施,現在我實際上正在睡覺。但我明天會給它一個鏡頭,並回複評論。 – Nike 2010-10-01 22:21:01

+0

+1,最簡單(php-)的方式來獲取數據,而不需要繁瑣的字符串操作。 – Wrikken 2010-10-01 23:27:58

+0

讓它像魅力一樣工作,感謝您的幫助。 :) – Nike 2010-10-02 09:10:57