2011-02-14 3 views
2
$result = mysql_query("show columns from mash"); 
for ($i = 0; $i < mysql_num_rows($result); $i++) { 
    $colArray[$i] = mysql_fetch_assoc($result); 
    $fieldArray[$i] = $colArray[$i]['Field']; 
} 
fputcsv($fp,$fieldArray); 

pour récupérer les noms de colonnes mysql, puis les afficher en haut du fichier CSV créé.Modifier les noms de colonnes mysql à utiliser avec FPutCSV()

Cependant, je sais ce que les noms de colonnes vont être, comment puis-je les changer pour la sortie dans le fichier CSV?

Ie. si les colonnes d'exposition produisent: id, field1, field2, field3, comment puis-je faire ces ID, Field 1, Field 2, Field 3. Non seulement capitaliser, mais choisir ce qu'ils vont être ...

Répondre

1

Vous « d doivent soit avoir une liste de colonnes à-étiquettes, ce qui rendrait le script spécifique à la base de données:

$labels = array(
    'col_name'=>'Column 1', 
    'id'=>'User ID' 
); // and so on 

$result = mysql_query("show columns from mash"); 
for ($i = 0; $i < mysql_num_rows($result); $i++) { 
    $colArray[$i] = mysql_fetch_assoc($result); 
    $fieldArray[$i] = $labels[$colArray[$i]['Field']]; 
} 
fputcsv($fp,$fieldArray); 

OU, vous auriez à faire une base de données avec ce genre de méta-données. Il peut avoir trois champs: table_source, colonne_source, étiquette_colonne. Cela ajoute une autre requête au mélange, mais permettrait au code d'être rendu générique.

La dernière route consiste à utiliser une convention de dénomination simple avec un séparateur, comme le trait de soulignement (_), puis vous supprimez les traits de soulignement et appliquez le casse de titre. field_1 devient "Field 1", "user_id" devient "User Id", et ainsi de suite.

$result = mysql_query("show columns from mash"); 
for ($i = 0; $i < mysql_num_rows($result); $i++) { 
    $colArray[$i] = mysql_fetch_assoc($result); 
    $fieldArray[$i] = _title_case_function_(str_replace('_', ' ', $colArray[$i]['Field']])); 
} 
fputcsv($fp,$fieldArray); 
Questions connexes