目前我有一个嵌套数组,它有三个数组(项目,客户,地址),当它通过
输出时,它们如下所示print_r($_POST);
Array
(
[items] => Array
(
[0] => Array
(
[item_id] => 1
[item_price] => 2
[quantity] => 11
)
[1] => Array
(
[item_id] => 12
[item_price] => 13
[quantity] => 14
)
[2] => Array
(
[item_id] => 13
[item_price] => 14
[quantity] => 15
)
[3] =>; Array
(
[item_id] => 16
[item_price] => 17
[quantity] => 18
)
[4] => Array
(
[item_id] => 18
[item_price] => 38
[quantity] => 38
)
)
[customer] => 111
[address] => 171
)
我想将这些数据插入到一个表中,每个元素值都属于其各自的字段。
目前我的php代码如下所示
if(is_array($_POST)){
foreach($_POST as $key => $value){
$item_id = (int) $value['item_id'];
$item_price = (int) $value['item_price'] ;
$quantity = (int) $value['quantity'] ;
$sql = "INSERT INTO orderItems(item_id, item_price, quantity) values ('$item_id', '$item_price', '$quantity')";
mysql_query($sql) or exit(mysql_error());
}
}
它无法正常工作。我是新来的。有人可以帮忙吗?
答案 0 :(得分:1)
你的数组位于items
数组内,所以你可以像这样重写foreach
循环:
foreach($_POST['items'] as $key => $value){
//Remaining same code
}
答案 1 :(得分:1)
试试此代码
$sql = "INSERT INTO orderItems(item_id, item_price, quantity) values ";
foreach($_POST['items'] AS $key=>$value)
{
$item_id = (int) $value['item_id'];
$item_price = (int) $value['item_price'] ;
$quantity = (int) $value['quantity'] ;
$sql .= "('$item_id', '$item_price', '$quantity'), ";
}
$sql = substr($sql, 0, -2);
mysql_query($sql) or exit(mysql_error());
您必须在$_POST['items']
块中使用foreach
。此外,您应该尝试使用所有这些值创建单个查询并执行一次而不是一次又一次地执行。