我正在使用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> </td>-->
<td><?php echo $row[mobile];?></td>
<td><?php echo $row[address];?></td>
<td><?php echo $row[location];?></td>
?>
答案 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上得到解答。