logre crear un archivo cvs desde php con una consulta a mysql...
pero el archivo queda sin el formato correspondiente...
me explico, todos los valores quedan en una sola columna y en diferentes filas... la idea que cada dato ocupe una columna y una fila diferente como en excel... es la idea... ahi esta el codigo haber si me ayudan ;)
Código PHP:
//GENERAMOS RESPALDO DE DATOS ANTERIORES EN BASE DATOS
$result=mysql_query("select * from historial_alumnos ");
$elCSV = 'RUT, NOMBRE, FECHA TITULO, AÑO TITULO'; // creo las cabeceras para mi archivo CSV (como te das cuenta separadas por comas, y notar que este archivo CSV tendra 4 valores por linea
$elCSV .= "\r\n"; // esto si creo que sabes que hacen?????
$csvName = "/home/areas/of-col/public_www/colocaciones/CSV/csv_respaldo/csv_respaldo". date('Ymd') .".csv";// creo el nombre para mi archivo CSV, utilizo la funcion date para para que alnombre se le adjunte el anio el mes y el dia.
$fileHandle = fopen($csvName, 'w') or die('Can\'t create .csv file, try again later.'); // uso fopen para abrir archivo en el que voy a escribir.. si tienes duda sobre esta funcion mira le referencia que te deje arriba.
while( $elTotal = mysql_fetch_array($result) ){ // ejecuto un while con mi resultado de mi query a la base de datos.
// echo($elTotal['company_code']);exit; // esto es un comentario
$elCSV .= $elTotal['historial_rut'].",".$elTotal['historial_nombre'].",".$elTotal['historial_fecha_titulo'].",".$elTotal['historial_anio_titulo']."\r";// aqui es cuanto empiezo a guardar el contenido de los campos de mi base de datos en una variable de string de PHP
}
// create and write file
fwrite($fileHandle, $elCSV); // funcion para escribir mi string al archivo previamente abierto con fopen.
//echo($elTotal['id']."<br />");
fclose($fileHandle); // cierro el archivo previamente abierto
//}
// push file to browser
// ESTAR CABECERAS (QUE SE MANEJAN CON LA FUNCION HEADER DE PHP,) SON PARA DECIRLE EL TIPO DE ARCHIVO QUE ESTAMOS GENERANDO (EN ESTE CASO PARA CREAR UN ARCHIVO DE CSV DE EXCEL) , PARA QUE NO CACHEE EL CONTENIDO, FECHA DE ULTIMA MODIFICACION, COMO SE MANEJARA EL CONTENIDO CREADO. SI INLINE (QUE LO VERA DIRECTAMENTE EN EL NAVEGADOR) O ATTACHMENT (QUE DESPLEGARA LA VENTANA DE DESCARGAR DEL NAVEGADOR), TAMANIO DEL ARCHIVO Y POR ULTIMO DAMOS UN ECHO PARA QUE EL CONTENIDO SEA AGREGADO.
header('Content-Type: application/x-octet-stream'); // ARCHIVO DE EXCEL
header('Last-Modified: '.date('D, d M Y H:i:s'));
header('Content-Disposition: attachment; filename="Historial_Titulados_DII'. date('Ymd') .'.csv"');
header("Content-Length: ".filesize($csvName));
// echo $csvContent;
// delete file
// unlink($csvName);
echo($elCSV);