0

我正在使用 mysql 处理 php,我的网站中有一个搜索表单,用户可以通过该表单从 mysql 数据库中按名称和位置进行搜索。所以我在数据库中有一个名为 customers 的表,其中包含 5 个字段名称、enail、mobile、address 和location.when 用户搜索结果以表格格式显示。现在我想以 csv 格式导出此结果。是否可能?

这是我的搜索表格:

<form class="form-horizontal" action="" method="post" name="userform">
    <?php if($_GET[id]){?>
    <?php }else{?>
    <fieldset>
     <legend>Search</legend>
    <div class="control-group">
    <label class="control-label">Search Term</label>
    <div class="controls">
    <input type="text" class="span3 search-query" name="term" placeholder="search by name and location">
    <button type="submit" class="btn" name="search">Search</button>
    </div>
    </div>
</form>

这是从数据库中获取结果的查询:

<?php 
                 // to print the records
                $term = $_POST['term'];
                if($term != ""){
                 $sql = mysql_query("select * from customers where name like '%$term%' or location like '%$term%'");
                while ($row = mysql_fetch_array($sql)){
                ?>

                <tr>
                <td><?php echo $row[cid];?></td>
                <td><?php echo $row[name ];?></td>
                <td><?php echo $row[email];?></td>
                <!--<td>&nbsp;</td>-->
                <td><?php echo $row[mobile];?></td>               
                <td><?php echo $row[address];?></td>
                 <td><?php echo $row[location];?></td>
?>
4

2 回答 2

0

PHPExcel 已经被建议并且我同意,这是那里最好的库之一。一个主要缺点是它的内存占用,对于简单的 CSV 导出来说它可能是一种过度杀伤力。

如果您只需要 CSV,您可能需要查看 MySQL 的(更底层的)内置功能:SELECT ... INTO OUTFILE.

它不太灵活并且有一些陷阱,但与诉诸外部库相比,它的速度快如闪电。StackOverflow 已经回答了您使用这种方法可能遇到的大多数问题。

于 2013-06-14T12:37:33.373 回答
0

也许你再次像这样查询结果:

$query = "SELECT * 
INTO OUTFILE '/tmp/result.csv'
FIELDS TERMINATED BY ',' 
OPTIONALLY ENCLOSED BY '"'
ESCAPED BY '\\'
LINES TERMINATED BY '\n'
FROM customers
WHERE name LIKE '%" . $term . "%'
OR location LIKE '%" . $term . "%'";

还没有尝试过,但这应该会生成一个 csv 文件,然后您可以打开或链接到。

于 2013-06-14T12:37:04.063 回答