Ver Mensaje Individual
  #8 (permalink)  
Antiguo 12/03/2007, 13:32
Avatar de ebe
ebe
 
Fecha de Ingreso: marzo-2004
Ubicación: Guatemala
Mensajes: 363
Antigüedad: 20 años, 8 meses
Puntos: 11
Re: funcion para crear un CSV desde un query

<?php

$selTotal = "SELECT * FROM api_orders_history"; // guardo en una variable sentencia sql a ejecutar


$selTotalExec = mysql_query($selTotal, $catalogoSTD) or die( mysql_error() ); // uso mysql_query() para ejecutar sentencia SQL guardada en #selTotal

$elCSV = 'No. PEDIDO, CODIGO CLIENTE, CODIGO PRODUCTO, CANTIDAD'; // 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 = "archivos/pedidos". 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_assoc($selTotalExec) ){ // 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['order_code'].",".$elTotal['company_code'].",".$elTotal['product_code'].",".$elTotal['product_quantity']." \n ";// 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('Cache-Control: must-revalidate, post-check=0, pre-check=0');
header('Last-Modified: '.date('D, d M Y H:i:s'));
header('Content-Disposition: attachment; filename="Reporte_de_pedidos'. date('Ymd') .'.csv"');
header("Content-Length: ".filesize($csvName));
// echo $csvContent;

// delete file
// unlink($csvName);

echo($elCSV);



?>


Si aun con los comentario tienes dudas sobre las funciones de PHP puedes hacer lo siguiente:

el la barra de direcciones de tu navegador pon php.net/funcionquenosabes que hace, o sea si no sabes como utilizar fopen pones asi:

http://www.php.net/fopen

y te desplegara la descripcion de dicha funcion.

dudas??

un saludo
__________________
http://dev.wsnetcorp.com