首页 > 解决方案 > 将数据库导出到 csv 更改一些字段名称

问题描述

我想将我的数据库导出到 csv 文件。我已经有了这个:

$query=mysqli_query($conexion, "SELECT * FROM table_name") or die("Problemas con la 
 conexión: ".mysqli_error($conexion));
 $variable_name = array();
 if (mysqli_num_rows($query) > 0) {
   while ($row = mysqli_fetch_assoc($query)) {
      $variable_name[] = $row;
  }
 }
 header('Content-Type: text/csv; charset=utf-8');
 header('Content-Disposition: attachment; filename="filename.csv"');
 header('Pragma: no-cache');
 header('Expires: 0');
 $output = fopen('php://output', 'w');
 fputcsv($output, array('col1', 'col2', 'col3', 'col4', 'col5', 'col6', 
 'col7', 'col8', 'col9', 'col10'));
  if (count($varible_name) > 0) {
    foreach($variable_name as $row) {
    fputcsv($output, $row);
   }
  }
 fclose($output);

这工作正常,但我只是意识到一列的 id 值不是与另一个表相关的实际值。问题是我想用值的真实名称替换该列的 ID 号。假设 col3 的值为 1、2 或 4,我想用“1 的列值”、“2 的列值”等替换这些值。我尝试加入表,但它加入了 id,所以我仍然有数字而不是命名值。

我该怎么做?谢谢你

更新。

要导出的表示例。

table1
id   name   job   payment   workshop
 1   susan  job1  yes       1
 2   mike   job2  yes       3
 3   bob    job3  no        2
 4   rob    job3  no        3

table2
id  workshop_name
1   cooking
2   talking
3   running

当我尝试加入两个表时,cvs 文件是:

id name job payment workshop 1 susan job1 yes 1 cooking 2 mike job2 yes 3 running 3 bob job3 no 2 talking 4 rob job3 no 3 running

我想要的是用表 2 中的名称替换 col 车间中的数字:烹饪跑步说话。也许通过一个简单的开关,我可以用名称更改数字,但我不知道该怎么做。

谢谢

标签: phpmysqlexportexport-to-csv

解决方案


推荐阅读