javascript - 将我的 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);
?>
这是我的html
<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>
这是我的 export.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 代码时,它返回了一个错误。
推荐阅读
- swift - 如何设置文本字段大小修复macos swift
- c - 如何从用户那里获取输入整数,直到他使用 eof 按下回车键?
- c# - 当他们触摸按钮统一时,我如何让我的平台移动 90 度
- bazel - 我可以根据不同的 cc_binary 在 cc_library 中设置不同的宏值吗?
- dart - 颤动简单权限android版本比较和iOS path_provider错误
- java - 迭代列表对象中的日期变量并根据位置选择日期范围
- matlab - 如何在 MATLAB 中打印小圆圈?
- javascript - Chartjs 重叠区域的不同填充颜色
- ubuntu - 来自 Ubuntu 上 ubuntu 终端的 cmake-gui 显示:QXcbConnection:无法连接到显示已中止(核心转储)
- javascript - 如何在按钮文本中附加下拉项文本