Avendo la necessità di esportare una tabella MySQL in fomato CSV (Comma-Separated Values), il procedimento più utilizzato è quello di accedere al pannello di phpMyAdmin, selezionare la tabella e procedere con i passaggi Esporta->Formato->CSV.
In alcuni casi capita però di aver bisogno di esportare i dati in formato CSV dinamicamente attraverso PHP, e nulla di più facile, farlo con un semplice script e con pochissime righe di codice.
Vediamo un semplice esempio :
<?php $host="localhost"; $user="root"; $pass=""; $db_name="name_db"; $table="tablename"; $conn = mysqli_connect($host,$user,$pass,$db_name) or die("Errore connessione"); $query = "SELECT * FROM $table ORDER BY ID"; $result = mysqli_query($conn,$query) or die("Errore della query"); if(mysqli_num_rows($result)>0) { $csv = ""; $row = mysqli_fetch_assoc($result); $delim = ""; //recupero i nomi dei campi che oocuperanno la prima riga del csv foreach($row as $k => $v) { $csv .= $delim . '"' . str_replace('"', '""', $k) . '"'; $delim= ";"; } $csv .= "\n"; //recupero i valori dei campi while($row = mysqli_fetch_assoc($result)) { $delim = ""; foreach($row as $v) { $csv .= $delim . '"' . str_replace('"', '""', $v) . '"'; $delim = ";"; } $csv .= "\n"; } header("Content-type: text/csv"); header("Content-Disposition: attachment; filename=".$table.".csv"); echo $csv; exit; } else { echo "Nessun record presente"; } ?>