我有一个表orders
,其中有一个用户选择的列表,它们存储在list
列
TABLE orders
userid | theorder | price
-------------------------------
20 | Cigar | 5.00
20 | Beer | 6.00
20 | Whiskey | 20.00
20 | Bacon | 10.00
21 | Beer | 10.00
21 | Bacon | 10.00
22 | Cigar | 10.00
还有一个名为confirmation
的新表,我希望连接所有用户选择!问题是该列正在输出许多数组'话!
这是我想要的:
TABLE confirmation
userid | list | price
-------------------------------------------------
20 | Cigar, Beer, Whiskey, Bacon | 41.00
21 | Beer, Bacon | 20.00
22 | Cigar | 10.00
以下是实际问题:
TABLE confirmation
userid | list | price
-------------------------------------------------
20 | Array, Array, Array, Array | 41.00
21 | Array, Array | 20.00
22 | Array | 10.00
以下是我使用
的代码$sql = "SELECT theorder FROM orders WHERE userid='$userID'";
$result = $conn->query($sql);
$getOrder = $result->fetchAll(PDO::FETCH_ASSOC);
$sql = "INSERT INTO confirmation (list, userid) SELECT GROUP_CONCAT('$getOrder' SEPARATOR ', '), '$userID' FROM orders";
$result = $conn->query($sql);
注意:我已尝试使用
foreach
函数,但它输出的行数与#34;数组相同"字的价值!
答案 0 :(得分:2)
您可以使用一个查询来执行此操作;)
INSERT INTO confirmation (list, userid, price)
SELECT
GROUP_CONCAT(theorder SEPARATOR ', '),
userid,
sum(price)
FROM orders
WHERE userid='$userID'
GROUP BY userid