使用PHP,Zend将表数据导出为CSV

时间:2015-02-25 10:07:03

标签: php html mysql zend-framework

我有MySql数据库和网站,在web i中显示表中的数据库值。我做了CSV导出指定数据库模型(表)。

  `$this->view->table = $model->info('name');

    $is_csv = $this->_getParam('csv');

    if ($this->_request->isPost() && $is_csv) {

        $file1 = 'Baudų sąrašas '.$date_from.' iki '.$date_to.'.csv';
        $fp = fopen('php://output', 'w+');
        if ($date_from) {
            $select->where("date >= ?", $date_from . ' 00:00:00');
        }
        if ($date_to) {
            $select->where("date <= ?", $date_to . ' 23:59:59');
        }
            $data = $model->fetchAll($select);
        foreach ($data as $fields) {

            fputcsv($fp, $fields->toArray());
        }

        fclose($fp);

        if ($file1 !== false) {

            header('Content-type: text/plain');
            header('Content-Disposition: attachment; filename="' . $file1 . '"');
            exit;
        }
    }`

调用它的HTML:

       form method="post">
            <div class="control-group pull-right">

            <input type="hidden" name="table" value="<?php echo $this->table ?>" />
            <button type="submit" class="btn" name="csv" value="csv"><?php echo Core_Locale::translate('CSV')?></button>
                </div>
        </form>

现在我想不是从数据库,而是从具有Join的函数到数据库,但是当我使用时     return $this->getAdapter()->fetchAll($select);它给出了非对象错误,当我写return $this->fetchAll($select);时,它给我作为数据基础数据,从函数...     有没有可能有一些线索如何做到这一点?

1 个答案:

答案 0 :(得分:0)

这不是你问题的确切答案,但为什么不尝试这个..

SELECT * FROM my_table INTO OUTFILE 'my_table.csv' FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"' ESCAPED BY '\\' LINES TERMINATED BY '\n';

复制自:export mysql list of tables from mysql to csv file using php