首页 > 解决方案 > 从超过 1 个表格导出到 csv

问题描述

我在将数据从 mysql 导出到属于客户 ID 的 .csv 文件时遇到问题。
当我尝试导出时,标题和查询出现错误。
当我将查询粘贴到 mysql 中时,我收到了值,但它重复了条目。
任何人都知道如何在没有任何额外库的情况下解决这个问题?

$id = $_REQUEST['id'];
$query = "SELECT DISTINCT A.user_name, B.mr_name, C.mpl_name FROM t_user A
INNER JOIN t_mr_pom B ON A.id = B.t_user_id
INNER JOIN t_mpl_pom C ON A.id = C.t_user_id
WHERE A.id LIKE $id GROUP BY B.id";

$result = mysqli_query($connect, $query);
$filename = "exported-" . date('Y-m-d') . ".csv";

$file = fopen($filename, "w");
$delimeter = ",";
$headers = array('Header 1', 'Header 2', 'Header 3');
fputcsv($file, $headers, $delimeter);

while ($row = mysqli_fetch_array($result)) {
    $data = array($row['user_name'], $row['mr_name'], $row['mpl_name']);
    fputcsv($file, $data, $delimeter);
}

header("Content-type: text/csv");
header("Content-Disposition: attachment; filename=" . $filename);
header("Pragma: no-cache");
header("Expires: 0");
readfile($filename);

unlink($filename);
exit();

标签: phpmysql

解决方案


WHERE A.id LIKE $id GROUP BY B.id

不要LIKE在这里使用。使用=. 如果$id1,则结果将针对每个包含1: 10, 11, 12,...的 ID 重复


推荐阅读