所以,我有这个数组,我需要插入我的数据库。我正在使用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
UPDATE!
我从哥哥那里得到了一些帮助。这对我有用。如果您可以将它应用于您的案例,我希望它有所帮助
$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}')");
}
}
答案 0 :(得分:0)
检查您的插入查询,这是错误的。
例如,它应该是,
INSERT INTO table (field1, field2,.....) VALUE (value1, value2,.....)
答案 1 :(得分:0)
有几件事是错的:
这应该让你前进:
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 )");
}