Sei sulla pagina 1di 2

Exportar tabla MySQL a CSV en PHP

Publicado el 31/08/2013 por Admin No hay comentarios

Si algun da necesitais exportar los datos de una tabla o varias a CSV con php, he encontrado un par de archivos en internet que os solucionarn la papeleta. Se trata de 2 archivos, uno el genrico que se encarga de hacer la conexin a la base de datos y decirle como queremos que se llame el fichero a exportar y nuestra consulta de los datos a exportar y luego tenemos el exportcsv.inc.php que es el encargado de llevar a cabo el proceso de exportar a CSV en la llamada exportMysqlToCsv. -demo.php

Source code
<?php $host = 'localhost'; // MYSQL database host adress $db = ''; // MYSQL database name $user = ''; // Mysql Datbase user $pass = ''; // Mysql Datbase password // Connect to the database $link = mysql_connect($host, $user, $pass); mysql_select_db($db); require 'exportcsv.inc.php'; $filename="exportDataFromTable.csv"; // name of your file $query="select * from table..."; // your query exportMysqlToCsv($filename,$query); ?>

Y ahora el cdigo fuente de exportcsv.inc.php:

Source code
<?php function exportMysqlToCsv($filename,$query) { $csv_terminated = "\n"; $csv_separator = ","; $csv_enclosed = '"'; $csv_escaped = "\\"; $sql_query = $query; // Gets the data from the database $result = mysql_query($sql_query); $fields_cnt = mysql_num_fields($result); $schema_insert = ''; for ($i = 0; $i < $fields_cnt; $i++) { $l = $csv_enclosed . str_replace($csv_enclosed, $csv_escaped . $csv_enclosed, stripslashes(mysql_field_name($result, $i))) . $csv_enclosed; $schema_insert .= $l; $schema_insert .= $csv_separator; } // end for $out = trim(substr($schema_insert, 0, -1)); $out .= $csv_terminated; // Format the data while ($row = mysql_fetch_array($result)) { $schema_insert = ''; for ($j = 0; $j < $fields_cnt; $j++) { if ($row[$j] == '0' || $row[$j] != '') { if ($csv_enclosed == '') { $schema_insert .= $row[$j]; } else { $schema_insert .= $csv_enclosed . str_replace($csv_enclosed, $csv_escaped . $csv_enclosed, $row[$j]) . $csv_enclosed; } } else { $schema_insert .= ''; } if ($j < $fields_cnt - 1) { $schema_insert .= $csv_separator; } } // end for $out .= $schema_insert; $out .= $csv_terminated; } // end while header("Cache-Control: must-revalidate, post-check=0, pre-check=0"); header("Content-Length: " . strlen($out)); // Output to browser with appropriate mime type, you choose header("Content-type: text/x-csv"); //header("Content-type: text/csv"); //header("Content-type: application/csv"); header("Content-Disposition: attachment; filename=$filename"); echo $out; exit; } ?>

Al ejecutar demo.php, si todo ha ido bien, ya tendremos nuestra tabla de mysql lista para descargar en un fichero csv. - See more at: http://informatico.hol.es/blog/exportar-mysql-csv-php/#sthash.VhTSe9BB.dpuf

Crear un fichero CSV utilizando PHP/MYSQL


17 de Octubre de 2012 / 5 Comentarios / PHP, TIPS

Como complemento al post "Generar archivo CSV desde una array de PHP", en este caso vamos a ver como crear una exportacin a un fichero CSV de una tabla MySQL
<?php $db_host = 'localhost'; $db_usuario = 'root'; $db_password = "; $db_basedatos = 'mytestdatabase'; $db_tabla = 'clientes'; $$nombre_fichero = 'clientes.csv'; $dblink = mysql_connect($db_host, $db_usuario, $db_password) or die("No puede conectar " . mysql_error()); mysql_select_db($db_basedatos) or die("No puede conectar."); $result = mysql_query("SHOW COLUMNS FROM ".$db_tabla.""); $i = 0; if (mysql_num_rows($result) > 0) { while ($row = mysql_fetch_assoc($result)) { $salida_cvs .= $row['Field'].","; $i++; } } $salida_cvs .= "\n"; $values = mysql_query("SELECT * FROM ".$db_tabla.""); while ($rowr = mysql_fetch_row($values)) { for ($j=0;$j<$i;$j++) { $salida_cvs .= $rowr[$j].", "; } $salida_cvs .= "\n"; } header("Content-type: application/vnd.ms-excel"); header("Content-disposition: csv" . date("Y-m-d") . ".csv"); header( "Content-disposition: filename=".$nombre_fichero.".csv"); print $salida_cvs; exit; ?>

Potrebbero piacerti anche