Изменить имена столбцов mysql для использования с FPutCSV () - PullRequest
2 голосов
/ 14 февраля 2011
$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);

, чтобы получить имена столбцов mysql и затем вывести их в начало созданного CSV.

Однако я знаю, какими будут имена столбцов, как я могу изменить их для вывода в CSV?

Т.е.если вывод столбцов показа: id, field1, field2, field3, как я могу сделать эти идентификаторы, Field 1, Field 2, Field 3. Не просто использовать заглавные буквы, но выбрать, какими они будут ...

1 Ответ

1 голос
/ 14 февраля 2011

У вас должен быть либо список столбцов для меток, что делает скрипт специфичным для базы данных:

$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);

ИЛИ, вам нужно создать базу данных с этимвид метаданных.Он может иметь три поля: source_table, source_column, column_label.Это добавит еще один запрос к соединению, но позволит сделать код универсальным.

Последний способ - использовать некое простое соглашение об именах с разделителем, например, подчеркивание (_), а затем удалить подчеркиваниеи применить название дела.field_1 становится «Field 1», «user_id» становится «User Id» и т. д.

$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);
...