我有一个mysql数据库中的用户表,每个用户有一个referral_code
列和referral_code_used
列。PHP:根据2列将mysql数据库导出为CSV?
referral_code
拥有用户可以与他人共享的推荐代码。
referral_code_used
保存用户从其他用户收到并且他们在注册期间输入的引荐代码。
实施例:
user referral_code referral_code_used email
A TW89 [email protected]
---------------------------------------------------------------
B TW66 TW89 [email protected]
在上面的例子中,用户B已经使用的用户A referral_code
。
现在,我需要做的就是将这些数据导出到一个CSV文件,CSV文件应该是这样的(排序):
referrer referred
[email protected] [email protected]
就是这样。
到目前为止,我可以使用下面的代码导出整个MySQL作为CSV文件,但我无法弄清楚如何做什么,我试图做的,我不知道这是否是可能的:
<?php
header('Content-Type: text/csv; charset=utf-8');
header('Content-Disposition: attachment; filename=data.csv');
$output = fopen('php://output', 'w');
$rows = mysqli_query($db, 'SELECT * FROM `users`');
while ($row = mysqli_fetch_assoc($rows)) {
fputcsv($output, $row);
}
fclose($output);
mysqli_close($db_conx);
exit();
?>
任何帮助将不胜感激。
在此先感谢。
编辑:
我尝试这样做,这将产生一个空的CSV文件:
<?php
header('Content-Type: text/csv; charset=utf-8');
header('Content-Disposition: attachment; filename=data.csv');
$output = fopen('php://output', 'w');
$rows = mysqli_query($db_conx, 'SELECT u.email as referrer, ref.email as referred from users u INNER JOIN users ref on u.ref_code=ref.ref_code_used');
while ($row = mysqli_fetch_assoc($rows)) {
fputcsv($output, $row);
}
fclose($output);
mysqli_close($db_conx);
exit();
?>
,我没有看到任何错误了!
调试导出CSV文件,尝试使用ob_clean()在文件的启动和使用的error_reporting(E_ALL),并确保你的SQL查询工作 –
你有u.ref_code = ref.ref_code_used,根据你的数据库,应该是你。 referral_code = ref。 referral_code_used 难道是这样吗? –