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

将PHP中选定的多个值插入到另一个表中,php,mysql,Php,Mysql,$SelectSql=“从ProductId=2限制3的项目中选择Id” 我在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'"

$SelectSql=“从ProductId=2限制3的项目中选择Id”

我在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;
    }
}
这不管用。插入选定值的其他方法有哪些


感谢您的帮助。

使用这个查询。我认为它足够了

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

        SELECT '$CustomerId',Id,'2015-07-15','2017-11-15' FROM  Item WHERE ProductId = 2 LIMIT 3
您可以使用此代码

$CustomerId = 10; // test case.
它将更新您的状态并将日期设置为静态,或者您也可以使用now(),但有一件重要的事情是
项目移动
此表需要
自动递增
字段。如果您的select表没有插入表所需的字段,则使用null或静态值,假设您的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

这是通用格式

INSERT INTO tbl_temp2 (fld_id)
  SELECT tbl_temp1.fld_order_id
  FROM tbl_temp1 WHERE tbl_temp1.fld_order_id > 100;
更多信息


了解准备好的语句,以防止SQL注入。实际上,我这样做是为了发布问题。$CustomerId和两个日期不在项目表中。我直接将其作为值,并用单引号括起来
INSERT INTO tbl_temp2 (fld_id)
  SELECT tbl_temp1.fld_order_id
  FROM tbl_temp1 WHERE tbl_temp1.fld_order_id > 100;