【问题标题】:Allow users to pull temporary data then delete table data (headers remain)?允许用户提取临时数据然后删除表数据(标题保留)?
【发布时间】:2010-05-27 20:21:14
【问题描述】:

我不知道为这个问题命名的最佳方式,但我正在努力实现以下目标:

当客户登录他们的个人资料时,他们会看到一个链接,用于从现有数据库中以 CSV 格式下载数据。该过程有效,但是,我希望每次点击链接时这些数据都是“新鲜的”,所以我的计划是——一旦用户点击了链接并下载了 CSV 文件,数据库表将“删除”所有它的数据并重新开始(为空),直到下一组数据填充它。

我现有的 CSV 创建代码:

<?php
$host = 'localhost';
$user = 'username';
$pass = 'password';
$db = 'database';
$table = 'tablename';
$file = 'export';



$link = mysql_connect($host, $user, $pass) or die("Can not connect." . mysql_error());
mysql_select_db($db) or die("Can not connect.");

$result = mysql_query("SHOW COLUMNS FROM ".$table."");
$i = 0;
if (mysql_num_rows($result) > 0) {
while ($row = mysql_fetch_assoc($result)) {
$csv_output .= $row['Field'].", ";
$i++;
}
}
$csv_output .= "\n";

$values = mysql_query("SELECT * FROM ".$table."");
while ($rowr = mysql_fetch_row($values)) {
for ($j=0;$j<$i;$j++) {
$csv_output .= '"'.$rowr[$j].'",'; 
}
$csv_output .= "\n";
}

$filename = $file."_".date("Y-m-d",time());
header("Content-type: application/vnd.ms-excel");
header("Content-disposition: csv" . date("Y-m-d") . ".csv");
header( "Content-disposition: filename=".$filename.".csv");
print $csv_output;
exit;
?>

有什么想法吗?

【问题讨论】:

    标签: php mysql csv export


    【解决方案1】:
    $query = mysql_query('TRUNCATE TABLE '.$table);
    

    或者如果你想归档它们

    $query = mysql_query('RENAME TABLE db_name.'.$table.' TO db_name.'.$table.time());
    $query = mysql_query('CREATE TABLE db_name.'.$table.' ( /* table structure */ )');
    

    【讨论】:

    • 谢谢你!正如我从您的代码中了解到的那样,存档我将完全重命名表格?如果有 2 个数据库,那就太好了 - 一个包含新数据,一个包含所有数据。每次查看后刷新新数据; ALL DATA 填充了“新数据”表中的任何刷新信息。可能吗?
    【解决方案2】:

    对于为什么数据需要“新鲜”以及为什么您有一个可以随意清除的数据库表,我感到非常困惑。

    您不能直接将所需的任何数据导出到 CSV 并跳过整个写入并随后删除数据库的步骤吗?

    我认为您在此“临时表”中收集和存储的任何数据都可以在其他地方累积,然后当他们需要 CSV 时,您可以获取当时所需的所有数据,而不是保留一张毫无意义的桌子。

    【讨论】:

    • 为什么这“非常”令人困惑。因为客户具有零技术能力,并且不想从每天容纳 150 多个成员的数据库中提取注册信息。这意味着他们必须检查那些他们手动输入到自己系统中的内容,并希望他们第一次就做对了。如上所述,该文件已经导出为 CSV。该表并非毫无意义。你的答案是
    猜你喜欢
    • 2016-02-28
    • 1970-01-01
    • 2014-04-23
    • 2019-07-09
    • 1970-01-01
    • 2020-02-13
    • 1970-01-01
    • 1970-01-01
    • 2015-12-13
    相关资源
    最近更新 更多