2017-09-27 109 views
0

我一直在建立数据库来计算终止费用。将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循环是什么让我失望。

+0

这是最好的发布您的代码到实际的问题。外部链接变坏。 –

+0

我建议编辑您的答案,包括您在外部来源链接的代码。随时只保留最相关的部分 – mabe02

+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>"; 

}