将MYSQL结果导出为CSV

时间:2017-09-27 12:36:11

标签: php mysql csv

我一直在建立一个数据库来计算终止费用。

以下代码(termination.php)从前一页的复选框中选择多行,处理查询,并在循环中输出到简单的HTML表。这是按要求工作的。

<?php
require_once '.\Includes\dbcon.php';

$rowCount = count($_POST["select"]);

for ($i = 0; $i < $rowCount; $i++)
    {
    $sql = "UPDATE `{$_POST['customer']}` SET `DateOfCancellation`='{$_POST['dateofcancellation']} WHERE ServiceID={$_POST['select'][$i]}'";
    if ($con->query($sql) === TRUE)
        {
        echo "";
        }
      else
        {
        echo "Error: " . $sql . "<br />" . $con->error;
        }
    }

?>
<a href = ".\index.php">Back to Index</a></p>
<strong>Termination for <?php echo ucwords($_POST['customer']) ?> Based on Cancellation Date <?php echo $_POST['dateofcancellation'] ?></strong></p>
<table>
    <tr>
        <th>Service Name</th>
        <th>License Start Date</th>
        <th>License End Date</th>
        <th>Cost Per Calendar Month</th>
        <th>Balance on Termination</th>
<?php
$rowCount = count($_POST["select"]);

for ($i = 0; $i < $rowCount; $i++)
    {
    $sql = mysqli_query($con, "$select FROM `{$_POST['customer']}` WHERE ServiceID={$_POST['select'][$i]}");
    $row[$i] = mysqli_fetch_array($sql); ?>
<tr>
<td><?php
    echo $row[$i]['ServiceName']; ?></td>
<td><?php
    echo $row[$i]['LicenseStart']; ?></td>
<td><?php
    echo $row[$i]['LicenseEND']; ?></td>
<td>£<?php
    echo $row[$i]['CostPCM']; ?></td>
<td>£<?php
    echo $row[$i]['CostOfTermination']; ?></td>
<?php
    }

$sql = "UPDATE `{$_POST['customer']}` SET `DateOfCancellation`='0000-00-00'";

if ($con->query($sql) === TRUE)
    {
    echo "";
    }
  else
    {
    echo "Error: " . $sql . "<br />" . $con->error;
    }

$sum = 0;

for ($i = 0; $i < $rowCount; $i++)
    {
    $sum = $sum + $row[$i]['CostOfTermination'];
    }

echo "<strong>The Total Balance of Termination is: </strong>£" . $sum;
echo "<p>";
$sum = 0;

for ($i = 0; $i < $rowCount; $i++)
    {
    $sum = $sum + $row[$i]['CostPCM'];
    }

echo "<strong>Balance of Termination per Month: </strong>£" . $sum;
echo "<p>";
?>
</tr>

如何将表格中的数据导出到Excel文件(理想情况下)或CSV文件,我需要做什么。我尝试了一些不同的方法,可以得到标题,但不是实际的数据。我认为for循环是让我失望的原因。

1 个答案:

答案 0 :(得分:0)

尝试这样的事情:

<?php

$titles = "Service Name,License Start Date,License End Date,Cost Per Calendar Month,Balance on Termination";

$rowCount = count($_POST["select"]);
echo $titles;

for ($i = 0; $i < $rowCount; $i++)
    {
    $sql = mysqli_query($con, "$select FROM `{$_POST['customer']}` WHERE ServiceID={$_POST['select'][$i]}");

    $row[$i] = mysqli_fetch_array($sql); 

    echo 
    $row[$i]['ServiceName']  . "," . 
    $row[$i]['LicenseStart'] . "," .
    $row[$i]['LicenseEND']   . "," .
    $row[$i]['CostPCM']      . "," . 
    $row[$i]['CostOfTermination'] ."<br>"; 

}