2010-12-15 8 views
0

私は配列(2次元)を持っており、それをデータベースに挿入します。多次元配列を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つのインサートを得るだけ第五は、私が欲しい情報を持っています。最初は不完全です。

誰かが私を助けることができますか?

私の英語のために残念です。

+0

不完全のその後の使用を含め、失敗しますか?何が欠けている? – travelboy

+0

これはPHPですか?もしそうなら、phpタグを追加してください – Enrique

答えて

0

あなたは、アレイ内のブラウザからVARSを送信した場合は、チェック(のような
入力名=「SOME_NAME []」...

もあなたはあなたがのvar_dump($ your_varを置くことで、いつでも得るもの、確認することができます)スクリプト内の任意の場所に。

幸運:)

0

あなたは、おそらくのforeachの外のクエリとその上記5つの割り当てを持っていると思います。新しいループではなく、5回ではなくすべての項目に対して1回だけ実行します。あなたのインデントはあなたの大括弧では同じことを示唆します。

現在、毎回1つの値しか割り当てずに新しいクエリを実行しています。 5回後、すべての変数が割り当てられ、最終的に挿入された行に最終的にすべての適切な値が設定されます。

E_ALLにエラー・レベルに切り替え
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')"); 
} 

は他の中で、そのような方向にほのめかしているだろう:

  • 引用符で囲まれていない配列-キー: の定数は同じ名前のスクリプトが ます存在する場合予測できない。

  • エスケープされていない変数:不正な値 あるいは単に があなたの クエリまたはより悪いが失敗しますする必要があります引用符を含みます。

  • 爆発ナイーブ:ない各$ _POSTキー 変数が文字列 項目し、あなたのリストが含まれますが$num