将PHP中选定的多个值插入另一个表

时间:2017-05-26 11:41:37

标签: php mysql

$SelectSql = "SELECT Id FROM Item WHERE ProductId = 2 LIMIT 3";

我在PHP页面中有上述查询,结果输出如下:

Id
5
6
7

现在我需要将这些记录插入另一个表中,如下所示

Insert into table2 (Id,name) values(5,a), values(6,a), values (7,a)

但我以编程方式尝试的是

$SelectSql = "SELECT Id FROM Item WHERE ProductId = 2 LIMIT '$PostQuantity'";
$ItemResult2 = $dbcon->query($SelectSql);
if ($ItemResult2->num_rows > 0) {
    while ($row = $ItemResult2->fetch_assoc()) {
        $id = $row["Id"];
        $Insertsql = "INSERT INTO ItemMovement (CustomerId,ItemId,DeliveryDate,ReturnDate) VALUES('$CustomerId','$id','2015-07-15','2017-11-15')";
        mysqli_query($dbcon, $Insertsql);
            // echo $Advance;
    }
}

哪个不起作用。插入所选值的其他方法有哪些?

任何帮助表示感谢。

2 个答案:

答案 0 :(得分:0)

使用此单一查询。我认为足够了。

INSERT INTO ItemMovement (CustomerId,ItemId,DeliveryDate,ReturnDate)

        SELECT '$CustomerId',Id,'2015-07-15','2017-11-15' FROM  Item WHERE ProductId = 2 LIMIT 3

答案 1 :(得分:0)

您可以使用此代码

$CustomerId = 10; // test case.

它会根据您的情况更新您的日期和静态日期,或者您也可以使用now()但只有一个重要的事情ItemMovement此表需要auto increment字段。如果你的select表没有提交哪个插入表需要使用null或static值,假设你的customerId = 10;然后

INSERT INTO `ItemMovement` (`CustomerId`,`ItemId`,`DeliveryDate`,`ReturnDate`)
        SELECT 10,Id,'2015-07-15','2017-11-15' FROM  Item WHERE ProductId = 2 LIMIT 3;

只需替换上面的查询

10

'$CustomerId'

这是一般格式

INSERT INTO tbl_temp2 (fld_id)
  SELECT tbl_temp1.fld_order_id
  FROM tbl_temp1 WHERE tbl_temp1.fld_order_id > 100;

了解更多信息

https://dev.mysql.com/doc/refman/5.7/en/insert-select.html