Esportare tabella in csv con intestazione di colonne

Max61

Utente Attivo
2 Mar 2014
740
4
18
Salve, sto cercando esportare i dati di una query in un file csv, con il codice che allego i dati sono visualizzati correttamente, mancano però le intestazioni delle colonne
PHP:
$query = mysql_query("SELECT tblcheckresidenti.intervento,
           tblcheckresidenti.vecchio_civico,
           tblcheckresidenti.residente,
           tblcheckattivita.attivita,
           tblcheckaccesso.cod_topo_rilievo,
           tblcheckaccesso.indirizzo_rilievo,
           tblcheckaccesso.civico_rilievo,
           tblcheckaccesso.esponente_rilievo,
           tblcheckaccesso.targhetta_si_no,
           tblcheckaccesso.sit,
           tblcheckaccesso.toponomastica,
           tblcheckaccesso.tari,
           tblcheckaccesso.pratica_assegnazione,
           tblcheckaccesso.vecchio_cod_topo,
           tblcheckaccesso.vecchio_indirizzo,
           tblcheckaccesso.vecchio_civico,
           tblcheckaccesso.vecchio_esponente,
           tblcheckaccesso.progressivo_snc,
           tblcheckaccesso.cod_topo_ass,
           tblcheckaccesso.toponimo_ass,
           tblcheckaccesso.civico_ass,
           tblcheckaccesso.esponente_ass,
           tblcheckaccesso.cessato
FROM tblcheckresidenti
INNER JOIN tblcheckattivita
ON (tblcheckattivita.vecchio_civico = tblcheckresidenti.vecchio_civico)
INNER JOIN tblcheckaccesso
ON (tblcheckaccesso.vecchio_civico = tblcheckresidenti.vecchio_civico)");

$data = "";
while($row = mysql_fetch_array($query)) {
  $data .= $row['campo1'].";".$row['campo2'].";".$row['campo3'].";".$row['campo4'].";".$row['campo5'].";".$row['campo6'].";".$row['campo7'].";".$row['campo8']."\n";
}

header('Content-Type: application/csv');
header('Content-Disposition: attachment; filename="Check completo.csv"');
echo $data; exit();
Qualcuno sa darmi un aiuto?
Grazie
Max61
 

macus_adi

Utente Attivo
5 Dic 2017
1.343
91
48
IT/SW
Una prima versione potrebbe essere questa:
PHP:
$intest='';
$data='';
while($row = mysql_fetch_assoc($query)) {
  if($intest==''){
       $intest=join(';',array_keys($row))."\r\n";
   $data.=$intest;
}
$data.=join(',',$row)."\r\n";
}

Una seconda versione tipo questa:
PHP:
$result = mysqli_query($con, $query);
$data= mysqli_fetch_all($result, MYSQLI_ASSOC);
$csv[]=array_keys($data[0]);
array_map(function($el) use (&$csv){return array_values($el)},$data);
echo join("\r\n",$csv);

Buttata giù così, dovrebbe andare!
 

Max61

Utente Attivo
2 Mar 2014
740
4
18
Una prima versione potrebbe essere questa:
PHP:
$intest='';
$data='';
while($row = mysql_fetch_assoc($query)) {
  if($intest==''){
       $intest=join(';',array_keys($row))."\r\n";
   $data.=$intest;
}
$data.=join(',',$row)."\r\n";
}

Una seconda versione tipo questa:
PHP:
$result = mysqli_query($con, $query);
$data= mysqli_fetch_all($result, MYSQLI_ASSOC);
$csv[]=array_keys($data[0]);
array_map(function($el) use (&$csv){return array_values($el)},$data);
echo join("\r\n",$csv);

Buttata giù così, dovrebbe andare!

Una prima versione potrebbe essere questa:
PHP:
$intest='';
$data='';
while($row = mysql_fetch_assoc($query)) {
  if($intest==''){
       $intest=join(';',array_keys($row))."\r\n";
   $data.=$intest;
}
$data.=join(',',$row)."\r\n";
}

Una seconda versione tipo questa:
PHP:
$result = mysqli_query($con, $query);
$data= mysqli_fetch_all($result, MYSQLI_ASSOC);
$csv[]=array_keys($data[0]);
array_map(function($el) use (&$csv){return array_values($el)},$data);
echo join("\r\n",$csv);

Buttata giù così, dovrebbe andare!
Ciao e grazie, ho provato il tuo codice e in effetti mi mette i nomi delle colonne del db, però i dati non sono più incolonnati
PHP:
$intest='';
$data='';
while($row = mysql_fetch_assoc($query)) {
  if($intest==''){
       $intest=join(';',array_keys($row))."\r\n";
   $data.=$intest;
} 
$data.=join(',',$row)."\r\n";
}
while($row = mysql_fetch_array($query)) {
  $data .= $row['campo1'].";".$row['campo2'].";".$row['campo3']."\n";
}

header('Content-Type: application/csv');
header('Content-Disposition: attachment; filename="Check completo.csv"');
echo $data; exit();
ovviamente ho sbagliato ad inserire il tuo codice.
Un altra cosa, ma i nomi delle colonne li posso dare io invece di prendere i nomi dei campi del db?
Grazie e scusa per l'imbranataggine
 

macus_adi

Utente Attivo
5 Dic 2017
1.343
91
48
IT/SW
Un altra cosa, ma i nomi delle colonne li posso dare io invece di prendere i nomi dei campi del db?
Certo, devi mappare le colonne in un dizionario (array associativo)...

però i dati non sono più incolonnati
Ho utilizzato come separatore la "," virgola, quindi devi adattarlo a ciò che ti serve....

Per dati con "virgole" utilizza il PIPE "|" o il TILDE "~" alt+126!

UP:
$intest=join(';',array_keys($row))."\r\n";
$data .= $row['campo1'].";".$row['campo2'].";".$row['campo3']."\n";

Volutamente fatto così "\r\n" e "\n"???
 

Max61

Utente Attivo
2 Mar 2014
740
4
18
Certo, devi mappare le colonne in un dizionario (array associativo)...


Ho utilizzato come separatore la "," virgola, quindi devi adattarlo a ciò che ti serve....

Per dati con "virgole" utilizza il PIPE "|" o il TILDE "~" alt+126!
Perfetto, grazie non mi ero accorto della virgola.
Ma scusa se ne approfitto, posso intestare i nomi delle colonne a mio piacimento?
 

macus_adi

Utente Attivo
5 Dic 2017
1.343
91
48
IT/SW
Ma scusa se ne approfitto, posso intestare i nomi delle colonne a mio piacimento?
Certo, devi mappare le colonne in un dizionario (array associativo)...
In alternativa usa nella query
Codice:
SELECT tblcheckresidenti.intervento as Intervento,
           tblcheckresidenti.vecchio_civico as OldNumeroCivico,
           tblcheckresidenti.residente as Residenza,.......
etc...
 
Discussioni simili
Autore Titolo Forum Risposte Data
felino Esportare tabella HTML in PDF, quale libreria usare? Javascript 1
A esportare dati da tabella mysql a excel mantenendo formattazione PHP 0
V esportare una tabella mysql in excel(campi numerici) Database 6
D Esportare una tabella html su excel PHP 5
T Come esportare Thunderbird MBOX in file PST di Outlook? Windows e Software 2
M Esportare tabelle mdb con relazioni in mysql MS Access 0
camilia Come esportare file MBOX in PST Windows e Software 1
gandalf1959 Esportare testi da un vecchio progetto fatto con Adobe Director Mac e Software 0
Y Esportare attributi taglia e colore fa Wordpress a Facebook E-Commerce 5
S [PHP] come esportare due tabelle in file excel su due fogli distinti PHP 8
M Help - consultare (ed esportare) dati da un DB pubblico mySql PHP 2
G esportare in file .csv risultato di query mysql PHP 5
Z Esportare follower instagram Social Media Marketing 2
myprobsql [PHP] Esportare con PHP dati da MySQL a CSV PHP 2
M [PHP] Esportare in word PHP 2
M [PHP] Esportare dati csv in cartella predefinita PHP 0
felino [FileZilla] Esportare gestione siti con password in chiaro Windows e Software 16
Licantropo esportare tags e menù Joomla 0
francesco7 Esportare file da sito a sito senza scaricarli prima é possibile? Web Server 0
Eugene [Outlook] Esportare cartella messaggi in formato .mbox Windows e Software 0
T Esportare una parte dei prodotti inseriti Magento 0
A tasto per esportare in excel PHP 1
P Esportare i risultati di una query PHP 2
P Esportare i risultati di una query PHP 1
P Scegliere forum ed esportare i vecchi topic CMS (Content Management System) 4
S Esportare query mysql in excel PHP 0
B esportare animazioni da maya Windows e Software 1
matteoraggi Esportare le foto con zenphoto senza phpmyadmin e ftp Windows e Software 4
L file .ai esportare in svg. Webdesign e Grafica 3
S Esportare contenuto di un file xml Flash 4
A esportare messassi DB guestbook Supporto Mr.Webmaster 1
L Esportare formule complesse da excel Database 0
giorgione_tg esportare i contatti msn di hotmail Windows e Software 1
P Esportare Database di grandi dimensioni Database 1
C esportare dati da un form Classic ASP 3
B Esportare con xml XML 3
T Esportare file cvs da access MS Access 3
E Esportare Db Access97 in HTML dinamico HTML e CSS 4
E Esportare Report MS Access 1
M Esportare gif animate trasparenti Help Flash 2
D Miglior modo per estrarre le occorrenze di un elemento in un set di più file xml e quindi scrivere il risultato in una tabella Excel o magari in JSON XML 0
S da casella di testo a campo tabella Database 0
E Tabella righe e colonne PHP 0
G Sviluppo tabella orizzontale in un certo ordine PHP 2
R tabella troppo grande Database 0
C Creare Tabella Dati Meteo prelevandoli da dei Tags in un altro foglio PHP 27
M Contare totale risultati tabella in un periodo di tempo PHP 5
E Php aggiornamento tabella PHP 9
L Riempimento di una tabella al click di un bottone Javascript 1
M Accodare record presi da un altra tabella PHP 8

Discussioni simili