所以我有一个像这样结构化的数据库表......
$user->save();
$transaction->save();
$order = new Order();
$order->user_id = $user->id;
$user->orders()->save($order);
$transaction->orders()->save($order);
$order->products()->attach($cartItem->id, ['quantity' => $cartItem->qty]);
那些将是我的专栏,想象这是该数据库中的一行..
NAME | PHONE | EMAIL1 | EMAIL2 | EMAIL3
我需要能够将这些条目转储到CSV,我已经有了工作代码,但格式是问题。
我需要将每封电子邮件显示在一行中,并带有相应的名称和号码,格式如下......
John | 555-555-5555 | email1@website.com | email2@website.com | email3@website.com
我需要检索数千行并以这种方式显示它们,是否有某种方式使用PHP while循环我可以用这种格式显示数据库表中的行?非常感谢任何帮助。
答案 0 :(得分:1)
此过程称为unpivoting。
最常见的是在MySQL中使用UNION ALL
。
SELECT
NAME
, PHONE
, EMAIL1
FROM
table
UNION ALL
SELECT
NAME
, PHONE
, EMAIL2
FROM
table
UNION ALL
SELECT
NAME
, PHONE
, EMAIL3
FROM
table