loader

PHP: Esportazione dati in CSV, un Tool indispensabile

Esportiamo una tabella mysql in csv, un tool indispensabile in qualsiasi framework e/o portale.

Come avete intuito, oggi parliamo di un piccolo tool che permetterà di facilitarci la vita per l’esportazioni dei dati di una tabella (mysql e non solo) in csv, attraverso uno script custom che eseguirà nel migliore dei modi le nostre specifiche rischieste.

Precedentemente abbiamo già parlato di come si effettua una connessione al Database attraverso php.

Avvalorando la tesi del riuso del codice oggi ci appoggiamo esattamente a quella Libreria/Mini Framework custom per l’esecuzione della connessione e delle query.

Ipotizzando di aver letto, compreso e testato il funzionamento della libreria non ci resta che andare avanti sull’argomento di oggi, utilizzando un piccolo diagramma e scrivendolo in linguaggio naturale, il risultato dovrebbe essere un qualcosa di molto vicino a quanto descritto:

  • Connessione al DB
  • Esecuzione delle query
  • Recupero risultato query
  • Inizializzazione della nostra classe per esportazione in CSV
  • Aggiunta parametri
  • Eliminazione campi
  • Formattazione campi
  • Formattazione output
  • Recupero / Stampa file generato

Detto questo, abbiamo bisogno solo di definire alcuni importanti metodi per il corretto funzionamento della nostra Classe.

Partiamo dal costruttore

public function __construct($resukt_query=[],$options=[]) {
		$this->result=$resukt_query;
		if(!empty($options)){
			foreach ($options as $k=>$v){
				if(method_exists($this,$k)){
					call_user_func([$this,$k],$v);
				}
			}
		}
	}

Questo è il “main” della nostra classe, ossia il costruttore, che come ben noto costruisce l’oggetto e ne amplia le funzionalità attraverso l’uso e la definizione di proprietà della classe stessa.

Analizziamo i due parametri, di cui uno opzionale:

  • Result_query
    • La nostra query la salviamo in una variabile, e dobbiamo necessariamente passarla al costruttore
  • Options
    • Array associativo di parametri, in questi andremo a definire le nostre proprietà valorizzandole

Abbiamo quindi una lista di opzioni da passare al nostro costruttore, e più precisamente

private $fields=[];

	
	private $max_zeros=4;

	
	private $separatore=',';

	
	private $quotes=FALSE;

	
	private $zeros_cmp=[];

	
	private $date_cmp=[];

	
	private $date_format='d/m/Y H:i:s';

	
	private $delete_cmp=[];

	
	private $file='';

	
	public $result=[];

	
	private $temp_data=[];

	
	public $output='';

Queste sono le proprietà della Classe denominata “Utils_Estrazione”.

Potremo quindi definire quali saranno i campi sui quali effettuare una conversione di date, normalizzare una stringa, convertire un int in string, definire il nostro separatore, definire l’uso dei quotes in tutti i campi etc.

Auguro a tutti una felice esportazione.

11