2014-03-07 25 views
3

我正在将数据导出到.csv文件,它工作正常,但我遇到了一个小问题。我从表中提取namegender,但为了性别,我在我的数据库中保存了id(即,1 = Male2 = Female)。我的下面的代码给了我性别id,我该如何解决它?返回1男2女:使用PHP将MySQL数据导出到.csv

$rows = mysql_query("SELECT `name`, `gender` FROM TABLE"); 

while ($row = mysql_fetch_assoc($rows)) { 
    fputcsv($output, $row); 
} 
+3

显然不是,对他们来说幸运的是总有人会总是发布一个解决方案。 – CompuChip

回答

5

试试这个:

$rows = mysql_query("SELECT `name`, `gender` FROM TABLE"); 

while ($row = mysql_fetch_assoc($rows)) { 

    if($row['gender'] == 1) { 
     $row['gender'] = 'Male'; 
    } else { 
     $row['gender'] = 'Female'; 
    } 

    // Or ternary condition 
    // $row['gender'] = ($row['gender'] == 1 ? 'Male' : 'Female'); 

    fputcsv($output, $row); 
} 
+1

三元条件似乎很好,我@ncrocfer;) – David

2
<?php 

    $db_record = 'yourRecod'; 
    // optional where query 
    $where = 'WHERE 1 ORDER BY 1'; 
    // filename for export 
    $csv_fileName = 'db_export_'.$db_record.'_'.date('Y-m-d').'.csv'; 

    // database variables 
    $hostname = "localhost"; 
    $user = "yourUserName"; 
    $password = "yourPassword"; 
    $database = "yourDataBase"; 

    // Database connecten voor alle services 
    mysql_connect($hostname, $user, $password) 
    or die('Could not connect: ' . mysql_error()); 

    mysql_select_db($database) 
    or die ('Could not select database ' . mysql_error()); 

    $csv_export = ''; 

    $query = mysql_query("SELECT * FROM ".$db_record." ".$where); 
    $field = mysql_num_fields($query); 

    // create line with field names 
    for($i = 0; $i < $field; $i++) { 
     $csv_export.= mysql_field_name($query,$i).';'; 
    } 
    $csv_export.= ''; 
    while($row = mysql_fetch_array($query)) { 
     // create line with field values 
     for($i = 0; $i < $field; $i++) { 
     $csv_export.= '"'.$row[mysql_field_name($query,$i)].'";'; 
     } 
     $csv_export.= ''; 
    } 

    // Export the data and prompt a csv file for download 
    header("Content-type: text/x-csv"); 
    header("Content-Disposition: attachment; filename=".$csv_fileName.""); 
    echo($csv_export); 
?> 

我给你,我正在使用导出MySQL数据使用PHP

为.csv完整的示例代码
+0

这dosnt给我每个新行linebreaks :-( –

+0

这一个需要换行:https://gist.github.com/apocratus/936404 – hugsbrugs

2

在您的SQL中使用IF statement以最小化PHP逻辑:

SELECT `name`, IF(gender=1,'Male','Female') as 'gender' FROM TABLE