我有一個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 難道是這樣嗎? –