【问题标题】:insert into MySQl table elements from php array从php数组插入MySQl表元素
【发布时间】:2012-09-27 07:50:38
【问题描述】:

所以伙计们,我有这个数组需要插入到我的数据库中。我正在使用 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_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}')"); 
    }
}

【问题讨论】:

标签: php mysql arrays insert foreach


【解决方案1】:

检查您的插入查询,它是错误的。

例如,应该是, INSERT INTO table (field1, field2,.....) VALUE (value1, value2,.....)

【讨论】:

    【解决方案2】:

    有几处错误:

    • 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 )");
    }
    

    【讨论】:

    • 我要在其中插入值的数据库具有以下结构: id id_pachet id_produs id_pret 所以在一个包 (id_pachet) 中我可以有更多的产品 (id_produs) 可以有多个价格 (id_pret ) 例如:code id id_pachet id_produs id_pret 1 3 13 1 2 3 13 2 3 3 14 0
    • 我无法在此评论中正确理解这一点。所以我会编辑我的问题
    • @JvdBerg 我可以为两个值做一个 foreach 吗?像这样: foreach ($vl['id_produs'] as $val and $vl['id_pret'] as $valv )
    猜你喜欢
    • 2012-07-27
    • 1970-01-01
    • 1970-01-01
    • 2019-12-05
    • 2016-12-12
    • 1970-01-01
    • 2014-12-08
    • 2015-01-19
    • 2012-07-21
    相关资源
    最近更新 更多