$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;
}
}
哪个不起作用。插入所选值的其他方法有哪些?
任何帮助表示感谢。
答案 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;
了解更多信息