Visualizzazione dei risultati da 1 a 4 su 4
  1. #1
    Utente di HTML.it
    Registrato dal
    Jun 2013
    Messaggi
    19

    esportare dati da PHP a CSV

    Sto cercando di esportare alcune colonne di una tabella MySQL in un file CSV (excel) usando PHP.

    Il codice cge segue scrive le colonne correttamente nel file "tabella" che si trova in /localhost, ma purtroppo genera un file CSV vuoto.
    Non capisco il motivo. Qualche idea? Grazie!!

    Codice PHP:
    <?php
    $output 
    fopen('tabella''w');
    fputcsv($output, array('giorno''mese''anno''descrizione''durata'));

    mysql_connect('localhost''root''');
    mysql_select_db('ore');
    $rows mysql_query('SELECT giorno,mese,anno,descrizione,((((ora_fine*60)+(min_fine))-((ora_ini*60)+(min_ini)))/60) FROM consuntivo');

    while (
    $row mysql_fetch_assoc($rows)){
    fputcsv($output$row);
    }
    header('Content-Type: text/csv');
    header('Content-Disposition: attachment; filename=tabella.csv');
    fclose($output);
    ?>

  2. #2
    Utente di HTML.it L'avatar di boots
    Registrato dal
    Oct 2012
    Messaggi
    1,626
    header('Content-Type: text/csv');
    header('Content-Disposition: attachment; filename=tabella.csv');

    In questo modo stai dicendo al browser che la risposta HTTP è un allegato csv e di salvarlo in un file chiamato tabella.csv e non di allegare il file tabella.cvs (che sta sul server).
    Ora la risposta è data dal output dello script (in poche parole gli "echo" o ciò che è fuori tag php), che mi pare vuoto.

    Anche se non è il massimo:

    Codice PHP:
    ...
    while (
    $row mysql_fetch_assoc($rows)){
        
    fputcsv($output$row);
    }
    fclose($output);
    header('Content-Type: text/csv');
    header('Content-Disposition: attachment; filename=tabella.csv');
    ob_clean();
    flush();
    readfile('tabella.csv');
    exit(); 
    Ultima modifica di boots; 03-05-2014 a 09:52

  3. #3
    Utente di HTML.it
    Registrato dal
    Jun 2013
    Messaggi
    19
    Grazie per l'aiuto. Ho provato a seguire il tuo suggerimento, ma il file scaricato è ancora vuoto.
    Il file su server invece è completo, con tutti i dati presi dal database.

  4. #4
    Utente di HTML.it L'avatar di boots
    Registrato dal
    Oct 2012
    Messaggi
    1,626
    noto adesso che tu fai

    $output = fopen('tabella', 'w');

    mentre io ho messo

    readfile('tabella.csv');

    Verifica che non sia questo il problema. Nel caso non funzioni ancora, prova a commentare gli header() e vedi se ti viene visualizzato il file

Tag per questa discussione

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.