php - 通过 php 按钮将表格导出到 CSV

标签 php mysql csv

我真的是 php 的新手,我所学的一切都来 self 的学校教科书和在线研究。话虽如此,我正在努力完成一项任务,但我被困在了最后一部分。对于最后一部分,作业要求“创建一个 PHP 脚本,将员工表的内容转储到 CSV 文本文件中,每个记录的值都以逗号分隔。每个新记录都应在新行开始”.我尝试了很多在线教程,但没有一个教过如何将此事件放入按钮中。我包含了我的代码,这样您就可以看到我的困惑情况。这还不错,但我相信我可以用更少的代码完成同样的任务。我再次开始,这是我现在能做的最好的。谁能就如何做到这一点提出任何建议。我在第 140 行有我的按钮。我还使用了 db_connect() 函数,所以我不必多次编写它。我可以在保存为 csv 之前使用它来读取数据库。

如有任何建议,我们将不胜感激。请注意,要遵循的代码很多。

    <h2>Employee Search</h2>
    <form action="Draft.php" name="dbToCSV" method="GET">
        <input type="submit" name="dbToCSV" value="Export Database to CSV" <?php if     (isset($_GET['dbToCSV']))
                    {
                        //Do this code
                    }
                    else
                    {
                        echo "Error!";
                    } ?>><br />

    </form>
    <form action="Draft.php" method="GET">
        By name: <input type="text" name="searchName">
        <input type="submit" value="Search Name"><br />
    </form>
    <form action="Draft.php" method="GET">
        By language: <input type="text" name="searchLang">
        <input type="submit" value="Search Language"><br />
    </form>

最佳答案

都2017年了,现在mysqli比mysql还普遍。所以这是 Josh Liptzin 的答案的 mysqli 版本:

<?php

/* Attempt MySQL server connection. */  
$connection = mysqli_connect($database_server, $database_username, $database_password, $database_name);

// Check connection
if($connection === false){
    die("ERROR: Could not connect. " . mysqli_connect_error());
}

$query = "SELECT * FROM Employee_data";
$result = mysqli_query($connection, $query);

$number_of_fields = mysqli_num_fields($result);
$headers = array();
for ($i = 0; $i < $number_of_fields; $i++) {
    $headers[] = mysqli_field_name($result , $i);
}
$fp = fopen('php://output', 'w');
if ($fp && $result) {
    header('Content-Type: text/csv');
    header('Content-Disposition: attachment; filename="export.csv"');
    header('Pragma: no-cache');
    header('Expires: 0');
    fputcsv($fp, $headers);
    while ($row = $result->fetch_array(MYSQLI_NUM)) {
        fputcsv($fp, array_values($row));
    }
    die;
}

function mysqli_field_name($result, $field_offset)
{
    $properties = mysqli_fetch_field_direct($result, $field_offset);
    return is_object($properties) ? $properties->name : null;
}

?>

关于php - 通过 php 按钮将表格导出到 CSV,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21923934/

相关文章:

php - 每次输入PHP代码时页面崩溃

php - 使用 MySQL 创建新闻通量,根据提供的表名和 ID 从 3 个表中选择

MySQL数据库优化和性能: 2 tables or 3 tables?

linux - 将文件名插入 csv 文件的最后一列。

mongodb - 从 mongodb 导出 csv

javascript - 自动增加客户数量。

php - 使用复选框、PHP 和 MySQL 删除多行

MySQL 插入后触发器 "Unknown Column"

python - Django save() 方法不向我的 Mysql 数据库插入数据

PHP 日期列不从 csv 文件填充