Jump to content

SQL TO CSV


Recommended Posts

Hola chicos de la comunidad web

:tointo:

 

mmm... quisiera saber si a alguien se le ocurre/sabe como guardar los datos de un resultado SQL en un documento CSV para llevar un registro

 

Ejemplo, mi proyecto es acerca de un conteo de impresión con un total de hojas determinadas para cada usuario. Cuando este se excede se marca rojo el usuario, cuando quiero ver quienes se han excedido en el mes, perfectamente puedo exportar los datos con la consulta y mostrarla en HTML incluso imprimirla, pero para mayor seguridad quiero guardar un registro por mes en formato CSV. Se entiende ahora un poco mejor??

:nose:

 

Un saludo cordial a todos

 

Juan R. :banana:

Link to comment
Share on other sites

Hola.

 

Quizas esto te puede servir.

 

http://snipplr.com/view/2234/export-mysql-...results-to-csv/

// Export to CSV
if($_GET['action'] == 'export') {

    $rsSearchResults = mysql_query($sql, $db) or die(mysql_error());

    $out = '';
    $fields = mysql_list_fields('database','table',$db);
    $columns = mysql_num_fields($fields);

    // Put the name of all fields
    for ($i = 0; $i < $columns; $i++) {
    $l=mysql_field_name($fields, $i);
    $out .= '"'.$l.'",';
    }
    $out .="\n";

    // Add all values in the table
    while ($l = mysql_fetch_array($rsSearchResults)) {
    for ($i = 0; $i < $columns; $i++) {
    $out .='"'.$l["$i"].'",';
    }
    $out .="\n";
    }
    // 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=search_results.csv");
    echo $out;
    exit;
}

 

Link to comment
Share on other sites

lamentablemente no estoy en mi casa para probar el codigo, pero lo analice con un compañero de trabajo y por lo que entendimos, esto no lo exporta directamente, si no, lo crea.

 

bueno sea asi o no, muchas gracias por tu ayuda. y luego lo probaremos.

 

Gracias manolox

 

Hola ragys el motor es MySql.

 

Juan R. :)

Link to comment
Share on other sites

Entonces... lo puedes hacer directamente desde el motor, sin necesidad de usar un cliente... Si quieres mantener un registro periódico, tienes que programar un SP que haga el trabajo... El SP lo programas con ????? dependiendo si está en linux o windows...

 

Bueno... la consulta es algo así:

SELECT a,b,a+b INTO OUTFILE '/tmp/result.csv'
FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"'
LINES TERMINATED BY '\n'
FROM test_table; 

 

Eso es utilizando una consulta SQL... También puedes hacerlo así, o así:

mysql -umysqlusername -pmysqlpass databsename -B -e "select * from \`tabalename\`;" | sed 's/\t/","/g;s/^/"/;s/$/"/;s/\n//g' > mysql_exported_table.csv 

 

Salu2.

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...