在MYSQL INSERT的foreach循环中为数组添加额外值

时间:2011-05-20 14:57:17

标签: php mysql sql html oracle

现在我有一个存储水果名称,价格,数量的数组。我的代码如下所示:

<?php
session_start();
echo $_SESSION['SHOPPING_CART'];

$multi = $_SESSION['SHOPPING_CART'];
$new = array();
foreach($multi as $key=>$value) {
    $new[] = "'".implode("', '", $value)."'";
}
$query = "(".implode("), (", $new).")";
echo $query;

?>

echo $ query的作用示例如下:

Array('Apple', '1.00', '1')

我想要的是我的阵列看起来像这样:

Array('Alex<todaystimestamp>','Apple','1')

表示数组中的每个键。

我需要完成的是能够在我的表中插入多行,唯一标识符是用户名+时间戳。

非常感谢任何帮助!

2 个答案:

答案 0 :(得分:1)

$inserts = array();
foreach($_SESSION['SHOPPING_CART'] as $cart_item) {
    list($fruit_name, $price, $quantity) = $cart_item;
    $username_and_timestamp = $_SESSION['username'].time();
    $inserts[] = "('$username_and_timestamp', '$fuit_name', $quantity)";
}
$query = "INSERT INTO $table_name (username_and_timestamp, fruit_name, quantity) VALUES".implode(',',$inserts);

答案 1 :(得分:0)

使用array_unshift插入username作为数组的第一个元素$value

foreach($multi as $key=>$value) {
    array_unshift($value, $_SESSION['username']);
    $new[] = "'".implode("', '", $value)."'";
}