-1

だからみんな私は私のデータベースに挿入する必要があるこの配列を持っています。foreachを使用していますが、2つの値で実行できません。

単純な配列は次のようになります。

    Array
(

    [1] => Array
        (
            [id_produs] => 'value'
            [id_pret] => 'value'
        )

    [2] => Array
        (
            [id_produs] => 'value'
            [id_pret] => 'value'
        )
.
.
.
    [i] => Array
        (
            [id_produs] => 'value'
            [id_pret] => 'value'
        )


)

これは私が今得たものです:

foreach ($vl['id_produs'] as $prds=>$val) 
        {
       if($val<>'') mysql_query("INSERT into db set  id_pachet='".$id_pachet."', id_produs='".$val."'"); 
        foreach ($vl['id_pret'] as $prdsv=>$valv) {
            if($valv<>'') mysql_query("INSERT into db  set id_pachet='".$id_pachet."',  id_pret='".$valv."'");
        }
        }

どこ:

$vl = array();
    $vl = $_POST;

私は何を間違えますか?

穴の配列は次のようになります。

Array
(
    [nume_pachet] => Test pachet nou
    [id_produs] => Array
        (
            [0] => 0
            [1] => 41
            [2] => 135
        )

    [id_pret] => Array
        (
            [0] => 0
            [1] => 0
            [2] => 157
        )

    [pret_pachet] => 99.00
    [id_moneda] => 1
    [descriere_pachet] => Lorem ipsum dolores
    [activ] => 1
)

値を挿入するdbの構造は次のとおりです。

id id_pachet id_produs id_pret

したがって、1つのパッケージ(id_pachet)で、複数の価格(id_pret)を持つことができるより多くの製品(id_produs)を持つことができます。

例えば:

id  id_pachet   id_produs   id_pret
1   3       13              1
2   3       13              2
3   3       14              0

これを行うと、次のようになります。

foreach ($vl['id_produs'] as $prds=>$val) 
     {
   if($val<>'') mysql_query("INSERT into erad_produse_pachete_str set id_pachet='".$id_pachet."',  id_produs='".$val."'"); 

    }   

id_produsで機能していますが、同時にid_pretも挿入する必要があります

アップデート!

私は兄から助けを得ました。そして、これは私のために働いています。あなたがあなたのケースにそれを適用することができれば私はそれが役立つことを願っています

$produse = $_POST['id_produs'];
$preturi = $_POST['id_pret'];


if(count($produse))
foreach ($produse as $key=>$id_produs) {

    if($id_produs>0){
        $id_pret = isset($preturi[$key]) ? $preturi[$key] : 0;
        mysql_query("INSERT INTO erad_produse_pachete_str (id_pachet,id_produs,id_pret) VALUES ('{$id_pachet}', '{$id_produs}', '{$id_pret}')"); 
    }
}
4

2 に答える 2

0

挿入クエリを確認してください。間違っています。

たとえば、次のようになります。 INSERT INTO table (field1, field2,.....) VALUE (value1, value2,.....)

于 2012-10-06T09:21:07.023 に答える
0

いくつかの間違いがあります:

  • id_produs の値は数値です。引用符で囲んではいけません
  • 挿入クエリの構文が間違っています
  • foreach のループが正しくありませんでした。

これでうまくいくはずです:

foreach ($vl['id_produs'] as $val) {
  if($val<>'') 
    mysql_query("INSERT into `db` ( id_produs ) VALUES( $val )"); 
}

foreach ($vl['id_pret'] as $valv) {
  if($valv<>'') 
    mysql_query("INSERT into `db` ( id_pret ) VALUES( $valv )");
}
于 2012-10-06T09:21:55.617 に答える