PHP / mySQL导出为CSV但仅限用户选择的日期范围数据

时间:2012-07-03 05:34:01

标签: php date csv export range

我很难过,可以使用一些非常感激的帮助来解决这个问题。

基本上,我有一个页面显示来自mysql数据库的数据。

我有一个简单的文本链接,可将所有数据导出到下载的CSV文件中。 那段代码是......

<a href="log_activity-export2CSV.php?id=<?php echo $colname_CoachActivityListData ?>">Export All</a>

......这很好用。

注意:所有内容都是根据登录的用户生成的 - 因此需要ID。

这是将上述内容导出为CSV ...的PHP文件的内容/代码。

<?php 
mysql_select_db($database_vandyConnect, $vandyConnect);

$queryString = "SELECT Created, Last_Updated, coach_name, Start_Date, End_Date, And_Many_More_Columns FROM Activity_Log WHERE User_id = ". $_GET['id'];

$result = mysql_query($queryString, $vandyConnect);

// $result = $db_con->query('SELECT * FROM `Activity_Log`');
if (!$result) die('Couldn\'t fetch records');

$num_fields = mysql_num_fields($result);

$headers = array();
for ($i = 0; $i < $num_fields; $i++) {
    $headers[] = mysql_field_name($result , $i);
}

// $today = date("F_j,_Y,_g:ia");
$today = date("Ymd_g-ia");

$fp = fopen('php://output', 'w');
if ($fp && $result) {
    header('Content-Type: text/csv');
    header('Content-Disposition: attachment; filename="ADEC_Activty_export-'.($today).'.csv"');
    header('Pragma: no-cache');
    header('Expires: 0');
    fputcsv($fp, $headers);
    while ($row = mysql_fetch_row($result)){
        fputcsv($fp, $row, ",");
    }
    die;
}
?>

...注意:我从上面删除了所有为我插入Dreamweaver的php代码,将其连接到数据库和用户权限等。

现在,我正在试图找出如何为用户添加一种方法来下载此数据的CSV文件,但在某些日期范围之间用户选择。

首先,我选择使用我在网站其他地方使用过的JQuery DatePicker,但这次要使用它的DateRange选项......

<script type="text/javascript"> //to pick date range
$(function() {
    $( "#from_start" ).datepicker({
        defaultDate: "-2m",
        changeMonth: true,
        numberOfMonths: 2,
        onSelect: function( selectedDate ) {
            $( "#to_end" ).datepicker( "option", "minDate", selectedDate );
        }
    });
    $( "#to_end" ).datepicker({
        defaultDate: "-1m",
        changeMonth: true,
        numberOfMonths: 2,
        onSelect: function( selectedDate ) {
            $( "#from_start" ).datepicker( "option", "maxDate", selectedDate );
        }
    });
});
</script>

...注意:这部分也可以。 然后我为用户制作了html表格,以选择他们的日期范围...

<form method="POST" action="log_activity-export2CSV.php?id=<?php echo $colname_CoachActivityListData ?>">
    Select a date range from <input type="text" id="from_start" name="from_start" value="" /> to <input type="text" id="to_end" name="to_end" value="" />
    <input name="export" type="submit" value="Export CSV" />
</form>

...我给出的“动作”与上面的“导出所有链接”相同, 这是整个问题的踢腿/症结 - 我无法弄清楚如何将表格的选定值推送到CSV导出,以便只在所选日期范围之间下载。

如果有人可以指导我,我会很感激。 还要注意:这是很多代码,我是一个用PHP的总菜鸟,所以请温柔;-) 谢谢, -Jason。

0 个答案:

没有答案