php - 计算值并从 MySQL 导出到 csv

标签 php mysql csv

在 MySQL 中我必须遵循下表

 ID     col1    
 1      234
 2      987
 3      544

我想使用 Php 将此数据导出到 .csv 文件,如下所示

ID     col1    x     y
1      234   9891   18762
2      987   8763   37269
3      544   1852   86329

其中 x 和 y 中的值是使用 col1 中的值的 2 个函数的结果

function calX (col1){

}

function calY (col1){

}

从这里的帖子中我得到了以下代码:

$connection = connectToDB();

$query = "SELECT * FROM mytable";

$result = $connection->query($query);

if (!$result) die('Couldn\'t fetch records');

$headers = $result->fetch_fields();

foreach ($headers as $header) {
     $head[] = $header->name;
}
$fp = fopen('php://output', 'w');

if ($fp && $result) {
   header('Content-Type: text/csv');
   header('Content-Disposition: attachment; filename="export.csv"');
   header('Pragma: no-cache');
   header('Expires: 0');
   fputcsv($fp, array_values($head));
   while ($row = $result->fetch_array(MYSQLI_NUM)) {
       fputcsv($fp, array_values($row));
   }
   die;
}

如何添加 x 和 y 列?

最佳答案

基于您当前的代码:

$connection = connectToDB();
$query = "SELECT id,col1 FROM mytable";
$result = $connection->query($query);
if (!$result) die('Couldn\'t fetch records');
$headers = $result->fetch_fields();
$i=0;
foreach ($headers as $header) {
    $head[$i++] = $header->name;
}
$head[$i++]="x";
$head[$i]="y";
$csvrow = array();
$fp = fopen('php://output', 'w');
if ($fp && $result) {
   header('Content-Type: text/csv');
   header('Content-Disposition: attachment; filename="export.csv"');
   header('Pragma: no-cache');
   header('Expires: 0');
   fputcsv($fp, array_values($head));
   while ($row = $result->fetch_array(MYSQLI_NUM)) {
       //if there are more elements in row better do loop 
       $csvrow[0] = $row[0];
       $csvrow[1] = $row[1];
       $csvrow[2] = calX($row[0]);
       $csvrow[3] = calY($row[1]);
       fputcsv($fp, array_values($csvrow));
   }
   die;
}

我编辑的代码还可以进一步优化。

关于php - 计算值并从 MySQL 导出到 csv,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41905494/

相关文章:

Python将列表写入csv,无法将值放入列中

c# - 如何使这三个语句更安全地防止 SQL 注入(inject)?

php - 如何从 PHP 返回静态 JSON 到 extjs 存储

php - 如何在 MySQL 中替换字符串的一部分?

MySQL 查询 - 分组值和聚合

mysql - 如何获取其中具有不同值的列的计数

python - 导出应用程序引擎数据时如何排除列

python - 使用 Python 下载自定义 Google Analytics 报告

php - 通过 mysql 数据库重定向多个 url?

php - Eloquent 查询数组中的 NULL 结果