php - 如何将多个输入插入到按相同数据分组的同一行中
问题描述
我有一个记录所有用户购买的系统。在我的系统中,我有一个名为purchase_item的表。
表purchase_item看起来像这样
ID | order_id | 产品名称 |
---|---|---|
1 | 10001 | iphoneX |
2 | 10001 | ipnone 12 专业版 |
3 | 10001 | 平板电脑 |
4 | 10002 | 苹果笔 |
5 | 10002 | 气垫 |
6 | 10002 | iPhone 12 Pro Max |
这是我在上面插入数据的查询
$osql = "INSERT INTO `purchase_items`(`order_id`, `product_name`) VALUES ('$order_id',`$product_name` )";
现在我创建了另一个表(receipt_table),我想在组中插入上述数据。任何人都知道我该怎么做?
我想要的是我的表的输出看起来像这样:
ID | order_id |
---|---|
1 | 10001 |
2 | 10002 |
我想使用“INSERT INTO”对我的数据进行分组。任何人都知道我该怎么做?
解决方案
<?php
$purchased_item = [
[10001, "iPhoneX"],
[10001, "iPhone 12 Pro"],
[10001, "iPad"],
[10002, "Apple Pen"],
[10002, "Airpods"],
[10002, "iPhone 12 Pro Max"]
];
$servername = "localhost";
$username = "root"; //your user name
$password = ""; // your password here
$dbname = "myDB"; // database name
$conn = new mysqli($servername, $username, $password, $dbname);
$osql = "INSERT INTO `purchase_items`(`order_id`, `product_name`) VALUES (?,? )";
$ostmt = $conn->prepare($osql);
$isql = "INSERT INTO reciept_table(`id`, `order_id`) VALUES (?, ?)";
$istmt = $conn->prepare($isql);
$lastId = null; // to check id is entered or not
foreach ($purchased_item as $value) {
$ostmt->bind_param("is", $value[0], $value[1]);
$ostmt->execute();
if ($lastId != $value[0]){
$istmt->bind_param("i", $value[0]);
$istmt->execute();
}
$lastId = $vlaue[0];
}
?>
推荐阅读
- python - 使用 EditBannedRequests 时的 Telethon TypeError
- r - 如何在R中转换数据
- python - 在 Django 模板 HTML 中访问元组中的第一个值
- c++ - C++/gRPC - IsCancelled 无法正常工作
- selenium - 如何在 Chrome 中禁用“您的连接不是私人的”屏幕?
- cakephp - Cakephp 3.x => 4.0 迁移:PHPStan\Analyser\MutatingScope 中的致命错误
- c - CS50 pset4 恢复 - while 循环中的 fread 仅在生成 7168 jpeg 后才到达结束
- mysql - SQL查询问题/帮助/建议
- python - 字符串键值对的字典
- c# - Encoding.GetEncoding("Cyrillic") 在 .NET 中制作所有文本问号