2013-09-03 3 views
0

Я сделал страницу в php, которая показывает некоторые данные пользователей, такие как имя, адрес электронной почты и т. Д. В разных столбцах. Данные поступают из базы данных. Теперь я хочу экспортировать всю информацию в CSV-файл, есть ли какое-либо решение для него в 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>&nbsp; 

        <?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>&nbsp;&nbsp;&nbsp;<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

Я надеюсь, что это поможет вам http://stackoverflow.com/questions/17362686/export-a-mysql-table-into-csv-using-php-code – Shafeeque

+0

http://stackoverflow.com/questions/4249432/ export-to-csv-via-php –

+0

http://www.daniweb.com/web-development/php/threads/362491/how-to-export-the-data-as-csv-file-from-mysql- in-php –

ответ

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.

0

хранить данные в переменной таким же образом, вы показываете в таблице

$content="col1,col2,col3\n\r"; $content.="data1,data2,data3\n\r"; $content.="data4,data5,data6\n\r";

первая строка выше кода являются заголовки столбцов в Excel линии \n\r в формате CSV такой же, как </tr><tr> (новая строка) в таблице html

введите этот код, чтобы сделать файл 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);