如何插入数据库3阵列

时间:2011-10-13 22:31:39

标签: arrays insert foreach

我想使用“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个数组

谢谢

1 个答案:

答案 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);