是否可以将搜索数据导出到csv文件中

时间:2013-06-14 11:18:26

标签: php mysql search export-to-csv

我正在使用mysql处理php,我的网站上有一个搜索表单,用户可以通过mysql数据库中的名称和位置进行搜索。所以我在数据库中有一个名为customers的表,其中有5个字段名称,enail,mobile ,地址和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>
?>

2 个答案:

答案 0 :(得分: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文件,然后您可以打开或链接到该文件。

答案 1 :(得分:0)

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

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

灵活性较差且存在一些陷阱,但与使用外部库相比,它的速度非常快。这种方法可能遇到的大多数问题已在StackOverflow上得到解答。