将我的 php 表数据导出并下载为 csv



我正在尝试将我的数据库获取的数据提取到 Excel 文件以 execl 或 csv 格式下载,但我在导出时遇到问题,而且没有数据提取到 csv。这是我的代码:

这是我的php代码

<?php  
$connect = new PDO('mysql:host=localhost;dbname=123', '123', 'invoice123');
$query ="SELECT * from tbl_order";  
$result = mysqli_query($connect, $query);  
?>

这是我的网页

<form method="post" action="export.php" align="center">  
<input type="submit" name="export" value="CSV Export" class="btn btn-success" />  
</form>  
<table id="data-table" class="table table-bordered table-striped">
<thead>
<tr style="background-color: cornflowerblue;">
<th>Invoice No.</th>
<th>Invoice Date</th>
<th>Student Name</th>
<th>Total Amount</th>
<th>Total Amount</th>
<th>Total Amount</th>
<th>Total Amount</th>
<th>Total Amount</th>
<th>Total Amount</th>
<th>Total Amount</th>
</tr>
</thead>
<?php  
while($row = mysqli_fetch_array($result))  
{  
?> 
<tr>
<td><?php echo $row["order_id"]; ?></td>
<td><?php echo $row["order_no"]; ?></td>
<td><?php echo $row["order_date"]; ?></td>
<td><?php echo $row["order_receiver_name"]; ?></td>
<td><?php echo $row["order_total_before_tax"]; ?></td>
<td><?php echo $row["order_total_tax1"]; ?></td>
<td><?php echo $row["order_total_tax2"]; ?></td>
<td><?php echo $row["order_total_tax"]; ?></td>
<td><?php echo $row["order_total_after_tax"]; ?></td>
<td><?php echo $row["order_datetime"]; ?></td>
</tr>
<?php       
}  
?> 
</table>
</div>
<br>

这是我的导出.php页面

<?php  
//export.php  
if(isset($_POST["export"]))  
{  
$connect = new PDO('mysql:host=localhost;dbname=123', '123', 'invoice123');
header('Content-Type: text/csv; charset=utf-8');  
header('Content-Disposition: attachment; filename=data.csv');  
$output = fopen("php://output", "w");  
fputcsv($output, array('
Invoice No.', 'Invoice Date', 'Student Name', 'Total Amount'));  
$query = "SELECT * from tbl_order";  
$result = mysqli_query($connect, $query);  
while($row = mysqli_fetch_assoc($result))  
{  
fputcsv($output, $row);  
}  
fclose($output);  
}  
?>

我需要在我的网页上查看这些数据,还需要导出和下载它。

你去吧!

改变

$connect = new PDO('mysql:host=localhost;dbname=123', '123', 'invoice123');

$connect = mysqli_connect('localhost','123','invoice123','123');

它应该可以工作,您不能将"PDO"与mysqli_query一起使用,因为两者都是连接到数据库的不同方式。

您可以在此处阅读有关PDO和mysqli的更多信息->

https://websitebeaver.com/php-pdo-vs-mysqli

您还应该启用错误报告。 因为当我测试 PHP 代码时,它返回了一个错误。

相关内容

  • 没有找到相关文章

最新更新