我想使用“foreach”或其他东西
将3个数组插入数据库sql:
CREATE TABLE IF NOT EXISTS `orders` (
`id` int(11) NOT NULL auto_increment,
`order` text NOT NULL,
`price` text NOT NULL,
`quantity` text NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=cp1256 AUTO_INCREMENT=1 ;
表格:
<form method="POST" action="#">
<p dir="ltr"><input type="text" name="order[]" size="20"></p>
<p dir="ltr"><input type="text" name="price[]" size="20"></p>
<p dir="ltr"><input type="text" name="quantity[]" size="20"></p>
<p dir="ltr"><br /></p>
<p dir="ltr"><input type="submit" value="Submit" name="B1"></p>
</form>
对于我使用的2个阵列:
foreach (array_combine($orders, $prices) as $order=> $price) {
}
我想像这样插入: 例如:
1-订单 - 价格 - 数量
2-订单 - 价格 - 数量
3-订单 - 价格 - 数量
4-订单 - 价格 - 数量
5-订单 - 价格 - 数量
...
...
如何编辑此代码以插入3个数组
谢谢
答案 0 :(得分:0)
下面的代码显示了如何执行此操作,但我不确定您的表单是否实际返回数组。您也应该进行一些输入检查,以查看值是否确实是数组,并且所有项都具有相同数量(count
函数)。
下面的代码只是根据三个数组创建一个insert语句。
// Get the arrays and sanatize them. I use hard codes ones in this example.
$orders = array('a', 'b', 'c', 'd', 'e');
$prices = array(1, 2, 3, 4, 5);
$quantities = array(5, 6, 7, 8, 9);
$query = "INSERT INTO orders (order, price, quantity) VALUES";
$comma = "";
// Move the array cursor of all arrays to the beginning.
reset($prices);
reset($quantities);
foreach ($orders as $order)
{
// Get values and sanatize.
$order = mysql_real_escape_string($order);
$price = (float)current($prices);
$quantity = (int)current($quantities);
// Add to query.
$query .= "$comma\n('$order', $price, $quantity)";
$comma = ",\n";
// Move pointer (for $orders, the foreach does this).
next($prices);
next($quantities);
}
// Execute $query.
var_dump($query);