2015-08-24 31 views
0

以下是我的表單的示例。將雙括號PHP數組增量爲SQL

<div> 
<input name="address[1][name]" type="text"> 
<input name="address[1][street]" type="text"> 
<input name="address[1][city]" type="text"> 
<input name="address[1][phone]" type="text"> 
</div> 

<div> 
<input name="address[2][name]" type="text"> 
<input name="address[2][street]" type="text"> 
<input name="address[2][city]" type="text"> 
<input name="address[2][phone]" type="text"> 
</div> 

... 

我想增加從PHP中的每個塊獲得的數據,並使用MySQL將其增加到我的數據庫中。

達到此目的的最佳方法是什麼? 我知道它會生成數組,但我不知道如何處理「雙括號」方法(形式「aaa [x] [bbb]」可能有一個專有名稱,我不知道,我是抱歉)。

謝謝。

+0

您要查找的術語是「嵌套關聯數組」。我對你增加的意思有點困惑。你在談論增加數組的KEY嗎?如果是這樣,爲了什麼目的? – pimbrouwers

+0

你的意思是你想循環訪問數組嗎? –

+0

如果我不夠清楚,我很抱歉。無論如何,謝謝你的正確術語! @ Marcovecchio完全理解我想要達到的目標。 – Blackounet

回答

1

如果你想遍歷使用雙括號各個領域,用最好的結構是嵌套foreach的:

$formdata = $_POST['address']; 
foreach($formdata as $group) 
{ 
    $SQLFields = array(); 
    $SQLValues = array(); 
    foreach($group as $field => $value) 
    { 
    // Here you have each individual field inside each group, so you can 
    // build the fields of the INSERT statement. 
    $SQLFields[] = $field; 
    $SQLValues[] = $value; 
    } 
    // Now assemble everything, and your INSERT is ready. 
    $SQL = "insert into table (". 
      implode(", ", $SQLFields). 
      ") values ('". 
      implode("', '", $SQLValues). 
      "')"; 
    // Run the SQL statement the way you want. 
} 
+0

謝謝爲您的答案!它似乎完全適合我。我會盡力去適應這個。 – Blackounet

+0

@Blackounet,沒問題!如果它適合你,請將其標記爲問題的答案。 – Marcovecchio

1

我認爲你正在尋找的東西是這樣的:

$data = $_POST['address']; 
foreach($data as $address) { 
    //your address-object (name, street, city, phone) 
    var_dump($address); 
    //Add your sql-query in here and DO NOT forget to escape your received data 
} 
+0

謝謝!我對「var_dump」不是很熟悉,所以我不能正確地嘗試這些代碼。希望你的回答對某人有用:) – Blackounet

+0

var_dump'沒有其他的東西,然後把這個變量中的信息打印出來給你,所以你可以檢查它:) –

+0

今天我學到很多東西,非常感謝:) – Blackounet