2017-01-11 1 views
0
SQL

ich den folgenden Code haben:die Header hinzufügen, wenn Sie eine CSV-Datei PhP Erstellen

PhP

function write_csv($filename, $rows) { 
    $file = fopen($filename, 'w'); 
    while($row = mysqli_fetch_assoc($rows)) : 
    fputcsv($file, $row); 
    endwhile; 

    fclose($file); 
} 

// $db is a class I have and this function just returns a SQL result set 
$result_set = $db->run_query("SELECT * FROM Users"); 

write_csv('../MOCK_USERS_DATA.csv', $result_set); 

ich richtig bin immer zum Beispiel mit der der Benutzer Informationen ein erstellt CSV-Datei

1,greg,mason,407-356-3322,[email protected] 
2,derek,herd,407-234-4352,[email protected] 

etc ...

Meine Frage ist, wie bekomme ich die Header aus der Tabelle als die erste Zeile in meiner CSV-Datei. Ich bin neu beim Erstellen von CSV-Dateien und bleibe dabei, die erste Zeile der Header in dieser Datei zu erhalten, die mit dem Namen der Spalte in meiner Datenbank übereinstimmt. Irgendwelche Vorschläge?

Antwort

1

Einfacher Export zu CSV

// output headers so that the file is downloaded rather than displayed 
header('Content-Type: text/csv; charset=utf-8'); 

ob_start(); 
// create a file pointer connected to the output stream 
$output = fopen('php://output', 'w'); 

// output the column headings -> trim is used for lang translates 
// or use SQL query to get table columns headers name 
fputcsv($output, array(
    trim('Product name'), 
    trim('Pellet number'), 
    trim('Quantity'), 
    trim('Date') 
     ), ";"); 
// use foreach 
*********** 
// force download 
header("Content-Type: application/force-download"); 
header("Content-Type: application/octet-stream"); 
header("Content-Type: application/download"); 

// disposition/encoding on response body 
header('Content-Disposition: attachment; filename=pelletlist-' . time() . '.csv'); 
header("Content-Transfer-Encoding: binary"); 
header("Cache-control: private"); //use this to open files directly 
header('Expires: 0'); 
header("Pragma: no-cache"); 
header("Connection: close"); 
fclose($output); 
exit(); 

für Lastspaltennamen von db Verwendung:

SELECT COLUMN_NAME FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_SCHEMA = 'my_database' AND TABLE_NAME = 'my_table'; 

oder

SHOW COLUMNS FROM my_table; 
Verwandte Themen