2010-12-15 46 views
0

我有一個數組(二維),並將其插入到我的數據庫中。將多維數組插入到Mysql行中

我的代碼:

$yourArr = $_POST; 

$action = $yourArr['action']; 
$mysql = $yourArr['mysql']; 
$total = $yourArr['total']; 
unset($yourArr['action'] , $yourArr['mysql'] , $yourArr['total']); 

foreach ($yourArr as $k => $v) { 
    list($type,$num) = explode('_item_',$k); 
    $items[$num][$type] = $v; 
$pnr= $items[$num][pnr]; 
$pkt= $items[$num][pkt]; 
$desc= $items[$num][desc]; 
$qty= $items[$num][qty]; 
$price= $items[$num][price]; 


$eintragen = mysql_query("INSERT INTO rechnungspositionen (artikelnummer, menge, artikel, beschreibung,preis) VALUES ('$pnr', '$qty', '$pkt', '$desc', '$price')"); 
}

我在數據庫中保存有5個插入,但只有5號我想要的信息。第一個是不完整的。

有人可以幫助我嗎?

對不起,我的英語。

+0

不完整?少了什麼東西? – travelboy 2010-12-15 21:00:03

+0

這是php嗎?如果是這樣,請添加php標籤 – Enrique 2010-12-15 21:01:48

回答

0

檢查您是否已經在陣列發送瓦爾從瀏覽器(如
輸入名稱=「some_name []」 ...

你也可以檢查一下,你通過把得到的var_dump在任何時間($ your_var )在腳本的任何地方。

好運:)

0

你可能想有你的查詢和5點的分配是上述以外的foreach。而是在一個新的循環中,每個項目只執行一次而不是5次。你的縮進甚至表明相同,但是你的括號沒有。

目前它每次只分配一個值並執行一個新的查詢。 5次後,所有的變量被分配,最後插入的行終於有一切正確。

error_reporting(E_ALL); 

$items = array(); 

foreach($yourArr as $k => $v) { 

    // check here if the variable is one you need 
    list($type, $num) = explode('_item_', $k); 
    $items[$num][$type] = $v; 
} 

foreach($items as $item) { 

    $pnr = mysql_real_escape_string($item['pnr']); 
    $pkt = mysql_real_escape_string($item['pkt']); 
    $desc = mysql_real_escape_string($item['desc']); 
    $qty = mysql_real_escape_string($item['qty']); 
    $price = mysql_real_escape_string($item['price']); 

    $eintragen = mysql_query("INSERT INTO rechnungspositionen (artikelnummer, menge, artikel, beschreibung,preis) VALUES ('$pnr', '$qty', '$pkt', '$desc', '$price')"); 
} 

接通你的錯誤級別爲E_ALL會在這樣的方向已經暗示,除其他:

  • 不帶引號的數組鍵:如果 恆定存在同名的腳本將 是不可預測的。

  • 轉義變量:格式不正確的值 或甚至只是包含報價且其 需要存在失敗的 查詢或更糟。

  • 天真炸響:不是每個$ _ POST鍵 變量將包含字符串 項目和你的名單將失敗,包括後續使用的$num