Visualizzazione dei risultati da 1 a 3 su 3

Discussione: esportazione file .csv

  1. #1

    esportazione file .csv

    ciao,
    dovrei realizzare in php una procedura che prende dei record da una tabella mysql e li esporta in un file ascii .csv, e fa partire in automatico il download del file csv creato.
    Prima di addentrarmi un una serie di procedure da realizzare su misura, volevo sapere se c'era qualcosa di pronto e soprattutto se esisteva qualche funzione che mi permettesse di creare il file testo da una tabella da database.
    Poi come faccio a fare partire la procedura per il download del file?

  2. #2
    Utente di HTML.it L'avatar di jcsnake
    Registrato dal
    Jun 2010
    Messaggi
    629
    Ciao, in rete ho trovato questo codice, che ho testato e funziona correttamente

    Codice PHP:

    <?php



     $host 
    ""// <-- inserisci qui l'indirizo ip di MySql

     
    $user =  ""// <-- nome utente del database

     
    $pass =  ""// <-- password dell'utente

     
    $db ""// il database desiderato

     
    $table ""// la tabella da esportare in .csv

     
    $file $table// il nome del file csv da generare

     
    $link mysql_connect($host$user$pass) or die("Can not connect." mysql_error()); /* usa i dati forniti per connetterti a MySql, se impossibile interrompi */

    mysql_select_db($db) or die("Can not connect."); // seleziona il db desiderato oppure interrompi



             
    $csv_output="";

             

             
    $result mysql_query("SHOW COLUMNS FROM ".$table."");

             
    $i 0;

             if (
    mysql_num_rows($result) > 0) {

             while (
    $row mysql_fetch_assoc($result)) {  

             
    $csv_output .= $row['Field']."; ";

             
    $i++;

             }

             }

             
    $csv_output .= "\n"

             

             
    $values mysql_query("SELECT * FROM ".$table."");

             while (
    $rowr mysql_fetch_row($values)) {

             for (
    $j=0;$j<$i;$j++) { 

             
    $csv_output .= $rowr[$j]."; ";

             }

             
    $csv_output .= "\n"

             }

             
    $filename $file."_".date("d-m-Y_H-i",time()); // il nome del file sara' composto da quello scelto all'inizio e la data ed ora oggi

            

            /*$archivia = new ZipArchive();        

            $nome_file="archiviodb.zip";            

            if ($archivia->open($nome_file, ZIPARCHIVE::CREATE)!==TRUE) 

            {

              @exit("Impossibile aprire <$nome_file>\n");

            }

            $archivia->addFile("$filename.csv");*/         



            
    header("Cache-Control: public");

            
    header("Content-Description: File Transfer");

            
    header"Content-disposition: attachment;filename=".$filename.".csv");

            
    header("Content-type: application/ms-excel");

            
    header("Content-Transfer-Encoding: binary");

             
    //header("Content-disposition: csv" . date("Y-m-d") . ".csv");

             

             
    print $csv_output// il file e' pronto e puo' essere scaricato

             
    exit;

     
    ?>
    Spero ti sia d'aiuto

  3. #3

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.