-1

所以伙计们,我有这个数组需要插入到我的数据库中。我正在使用 foreach 但我无法让它以两个值运行。

简单的数组如下所示:

    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
)

我要在其中插入值的数据库具有以下结构:

id id_pachet id_produs id_pret

所以在一个包(id_pachet)中,我可以有更多的产品(id_produs)可以有多个价格(id_pret)

例如:

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 回答