我在php中创建了一个页面,在不同的列中显示了一些用户数据,如姓名,电子邮件,地址等。数据来自数据库。现在我想导出.csv文件中的所有信息在php中是否有任何解决方案。
下面是在页面上显示数据的代码。
<table width='98%' align="center" id='Categories_Main' cellspacing='0' cellpadding='0' class="table table-striped">
<tr height="25">
<th class="cat_list" colspan="4"><br /><?php echo $this->db->get_modules($cid);?><br /><br /></th>
<th></th>
</tr>
<tr>
<th width="150" style="min-width:55px" class="nowrap center"><a class="hasTip">Gender </a></th>
<th width="150" style="min-width:55px" class="nowrap center"><a class="hasTip">Name</a></th>
<th width="150" style="min-width:55px" class="nowrap center"><a class="hasTip">Adress</a></th>
<th width="150" style="min-width:55px" class="nowrap center"><a class="hasTip">Email</a></th>
<th width="150" style="min-width:55px" class="nowrap center"><a class="hasTip">Number</a></th>
<th width="150" style="min-width:55px" class="nowrap center"><a class="hasTip">Course</a></th>
<th width="150" style="min-width:55px" class="nowrap center"><a class="hasTip">Price</a></th>
<th width="150" style="min-width:55px" class="nowrap center"><a class="hasTip">Action</a></th>
</tr>
<?php
$sql = "SELECT * FROM
prospective_request
ORDER BY name ASC limit $st,$limit";
$this->db->query($sql);
while($this->db->fetch_array())
{
?>
<th class="nowrap has-context" width="200" style="min-width:55px">
<div class="pull-left"> <p style='margin-left: 10px; text-align:center'><?php echo showLink($this->db->record['user_title'],"?module=prospective_request&func=view&page=$page&cid=".$this->db->record['id'], $this->db->record['id']);?>
</p></div></th>
<th class="nowrap has-context" width="200" style="min-width:55px">
<div class="pull-left"> <p style='margin-left: 10px; text-align:center'><?php echo showLink($this->db->record['name'],"?module=prospective_request&func=view&page=$page&cid=".$this->db->record['id'], $this->db->record['id']);?>
</p></div></th>
<th class="nowrap has-context" width="200" style="min-width:55px">
<div class="pull-left"> <p style='margin-left: 10px; text-align:center'><?php echo showLink($this->db->record['address'],"?module=prospective_request&func=view&page=$page&cid=".$this->db->record['id'], $this->db->record['id']);?>
</p></div></th>
<th class="nowrap has-context" width="200" style="min-width:55px">
<div class="pull-left"> <p style='margin-left: 10px; text-align:center'><?php echo showLink($this->db->record['email'],"?module=prospective_request&func=view&page=$page&cid=".$this->db->record['id'], $this->db->record['id']);?>
</p></div></th>
<th class="nowrap has-context" width="200" style="min-width:55px">
<div class="pull-left"> <p style='margin-left: 10px; text-align:center'><?php echo showLink($this->db->record['number'],"?module=prospective_request&func=view&page=$page&cid=".$this->db->record['id'], $this->db->record['id']);?>
</p></div></th>
<th class="nowrap has-context" width="200" style="min-width:55px">
<div class="pull-left"> <p style='margin-left: 10px; text-align:center'><?php echo showLink($this->db->record['course'],"?module=prospective_request&func=view&page=$page&cid=".$this->db->record['id'], $this->db->record['id']);?>
</p></div></th>
<th class="nowrap has-context" width="200" style="min-width:55px">
<div class="pull-left"> <p style='margin-left: 10px; text-align:center'><?php echo showLink($this->db->record['total_price'],"?module=prospective_request&func=view&page=$page&cid=".$this->db->record['id'], $this->db->record['id']);?>
</p></div></th>
<th class="tabletxt" width="200" style="min-width:55px"><p align='left'>
<?php
if($cid){
?>
<a href="javascript:changeStatus(<?php echo $this->db->record['id'];?>,<?php echo ($this->db->record['status']==1)?"0":"1";?>, <?php echo $this->db->record['parent_id'];?>,<?php echo $page; ?>);"><img src="images/<?php echo ($this->db->record['status']==1)?"active":"inactive";?>.gif" border="0" align="absbottom" alt="<?php echo ($this->db->record['status']==1)?"Active - Click to deactivate":"Inactive - Click to activate";?>" /></a>
<?php } //IF ?>
<a href="index.php?module=prospective_request&func=edit&page=<?php echo $page;?>&cid=<?php echo $this->db->record['id'];?>&pid=<?php echo $cid;?>"><img src="images/editrec.png" border="0" align="absbottom" alt="Edit Record" /></a> <a href="javascript:delete_module('<?php echo $this->db->record['id']; ?>', '<?php echo $page;?>')" title="Delect Record"><img src="images/delete.gif" border="0" align="absbottom" alt="Delete Record" /></a>
</p> </th>
</tr>
<?php
} //While
?>
<form name="frmChangeStatus" action="index.php?module=prospective_request&func=view&page=<?=$page?>&cid=<?=$_GET['cid'];?>" method="post" >
<input type="hidden" name="action" value="" />
<input name="cat_id" type="hidden" value="" />
<input name="prospective_request" type="hidden" value="" />
</form>
<tr>
<td class="sub" align="center" colspan="6">
<?php
pagination($numpages, $page, "?module=".$_GET['module']."&func=".$_GET['func']."&cid=".$cid );
?>
</td>
</tr>
</table>
答案 0 :(得分:0)
如果您想要快速解决方案,请为要导出的数据行使用临时变量 例如,在你的周期之前:
[...]
$this->db->query($sql);
$separator=";"; // Separator to be used in your file
$crlf="\r\n"; // End of line
// Array with the fields to be exported, indexeded on your db fields:
$a_exp=array("gender"="Gender"
,"name"=>"Name"
,"address"=>"Address"
,"email"=>"Email"
,"number"=>"Number"
,"course"=>"Course"
,"price"=>"Price"
,"action"=>"Action");
$csv=""; // Add additional headers here
//Header
while(list($field,$descr)=each($a_exp)) {
$csv.=$descr.$separator;
}
$csv.=$crlf;
while($this->db->fetch_array()) {
// And here you can add the rows
reset($a_exp);
while(list($field,$descr)=each($a_exp)) {
$csv.=$this->db->record[$field].$separator;
}
$csv.=$crlf;
[...]
}
// At the end of the while cycle you can save the file
$f=fopen("/path/to/your/file.csv","a");
fwrite($f,$csv);
fclose($csv);
或者,您可以使用内置的fputcsv函数(http://www.php.net/manual/en/function.fputcsv.php)或现有的CSV导出库。
答案 1 :(得分:0)
以与表
中显示的方式相同的方式将数据存储在变量中 $content="col1,col2,col3\n\r";
$content.="data1,data2,data3\n\r";
$content.="data4,data5,data6\n\r";
上面代码的第一行是excel中列的标题
csv中的行\n\r
与html表中的</tr><tr>
(新行)相同
运行此代码以生成csv文件
$filename = "yourfile.csv";
$f = fopen($filename, 'w');
fwrite($f, $content);
fclose($f);
然后运行以下代码以进行文件下载
header("Cache-Control: public");
header("Content-Description: File Transfer");
header("Content-Length: ". filesize("$filename").";");
header("Content-Disposition: attachment; filename=$filename");
header("Content-Type: application/octet-stream; ");
header("Content-Transfer-Encoding: binary");
readfile($filename);