【问题标题】:Export column title in csv导出 csv 中的列标题
【发布时间】:2019-03-13 08:49:47
【问题描述】:

我必须改进此代码才能更好地输出 CSV 文件。 我需要的是也导出列标题,并可能用自定义值替换本机列标题。 同样在 csv 中,我有一些价格以这种形式“75.0000”,我不希望输出中的所有零

<?php
$db = new mysqli("server","user","password","db");
        $fp = fopen("list.csv","w");
    if ($rs = $db->query("SELECT column, price, id FROM table,table1 WHERE table.id=table1.id AND table2.id=table.id AND GROUP BY table2.id"))
    {
      while ($row = $rs->fetch_assoc())
      {
        fputcsv($fp, array_values($row));
      }
      $rs->close();
    }
    fclose($fp);
    ?>

你有什么建议吗? 非常感谢!

我刚刚编辑了这部分代码

 {
  while ($row = $rs->fetch_assoc()) 
  {
    fputcsv($fp, array_values($map));
    fputcsv($fp, array_values($row));
  }

但是现在,在 CSV 文件中,每个奇数行都有我称为 $map 的数组... 当然,我只需要它一次作为标题 谢谢你

【问题讨论】:

  • 只需在您的代码中添加带有列标题的行?
  • fetch_assoc,然后才使用array_values- :ROLLEYES: ...
  • 如果你想从结果集中获取列名 - array_keys()。如果你想“可能覆盖”它们——那么首先指定应该如何发生,你想把这些数据保存在哪里。您是否需要将语句列名称与 CSV 列标题进行动态匹配(以便以后可以更改语句中的顺序),还是将所有这些都指定为一个列标题数组就足够了?
  • 我不知道该怎么做,我是新手...

标签: php mysql csv mysqli export


【解决方案1】:

我解决了像这样更改 php:

<?php
include_once('connection.php');
$db = new mysqli("SERVER","USER","PASS","DB");
$date = date('d-M-Y-h-i-s');
$fp = fopen("lista-ordini-$date.csv","w");
$filename = ("lista-ordini-$date.csv");
$map = array("Num Ordine", "Nome", "Data", "Stato", "Prodotto", "SKU", "Prezzo base", "IVA", "Sconto", "Prezzo + IVA", "Totale", "ID");
$query = "SELECT sales_flat_order.increment_id, sales_flat_order_grid.billing_name, sales_flat_order_grid.created_at, sales_flat_order_grid.status, sales_flat_order_item.name, sales_flat_order_item.sku, sales_flat_order_item.base_price,sales_flat_order_item.tax_amount, sales_flat_order_item.discount_amount, sales_flat_order_item.price_incl_tax, sales_flat_order_grid.grand_total, sales_flat_order_grid.entity_id FROM sales_flat_order, sales_flat_order_grid, sales_flat_order_item WHERE sales_flat_order.entity_id=sales_flat_order_grid.entity_id AND sales_flat_order_grid.entity_id=order_id AND sales_flat_order_grid.created_at NOT LIKE '2012%'AND sales_flat_order_grid.created_at NOT LIKE '2013%' GROUP BY entity_id";
$result = mysqli_query($db, $query); 
fputcsv($fp,$map); 
while($row = mysqli_fetch_assoc($result))  
          {  
               fputcsv($fp, $row);  
          }  
          fclose($fp);  

?>

【讨论】:

  • 现在它导出带有我需要的标题的表格我希望它对某人有所帮助
猜你喜欢
  • 1970-01-01
  • 2019-04-23
  • 2019-03-30
  • 2018-02-03
  • 2018-12-18
  • 2020-01-01
  • 2020-07-01
  • 1970-01-01
  • 2017-12-01
相关资源
最近更新 更多