Puoi anche fare in modo che funzioni per tutte le tabelle

codice:
<?
 ob_start();
 $link = mysql_connect("", "root", "") or die ("Impossible de se connecter => ".mysql_error());
 mysql_select_db ("test") or die ("Impossible de se connecter => ".mysql_error());
 
 $tabella = "catalogo_categorie";
 
 $res = mysql_list_fields("test",$tabella);
 $nbCampi = mysql_num_fields($res);

 $arrayNomi       = array();
 for ($i=0;$i<$nbCampi;$i++) {
   $name        = mysql_field_name($res,$i);
	 $arrayNomi[] = "$name";
 }
  $clausolaSelect  = "select CONCAT_WS(';',". implode(",",$arrayNomi).") ";
	$clausolaSelect .= " as A from $tabella order by A";
  $res = mysql_query( $clausolaSelect) or die(mysql_error());
	while (list($result) = mysql_fetch_array($res)) {
	 print "$result\n";
	}
	$contents = ob_get_contents();
	ob_end_clean();
  header("Content-Type: application/text");
  header("Content-Disposition: attachment; filename=$tabella.csv");
	print $contents
?>