如何用循环中的字符串值替换整数布尔值

时间:2016-01-18 20:58:13

标签: php sql csv mysqli export-to-csv

我刚刚为我的应用程序制作了一个csv导出功能,但我仍然坚持使用一个我想要实现的功能。在我的数据库中,我的活跃' column保存值0或1(显然0表示false,1表示true)。当结果返回时,我想用" Active"替换这些值。或者"非活动",基于数据库中存储的数字布尔值,生成我的csv时。下面的代码是我的。我成功地导出了一个csv,我再也不知道如何用字符串替换那些整数布尔值。

header('Content-Type: text/csv; charset=utf-8');
header('Content-Disposition: attachment; filename=new.csv');

$output = fopen('php://output', 'w');
fputcsv($output, array('ID', 'active', 'role', 'firstname', 'lastname', 'email', 'username', 'datecreated'));
$results = mysqli_query($database->connection, "SELECT id, active, role, firstname, lastname, email, username, date_created FROM users");

while ($result = mysqli_fetch_assoc($results)):
 // I know I need to do something here to replace those values
 fputcsv($output, $result);
endwhile;

3 个答案:

答案 0 :(得分:1)

使用if / else

进行简单检查
if($result['active'] == 1){ 
    $result['active'] = 'Active' 
} else { 
    $result['active'] = 'Inactive' 
}

答案 1 :(得分:0)

试试这个:

while ($result = mysqli_fetch_assoc($results)):
    $row = $result;
    $row['active'] = $row['active'] ? 'Active' : 'Inactive';

    fputcsv($output, $row);
endwhile;

答案 2 :(得分:0)

一个选项是使用IF子句在MySQL查询本身中应用此逻辑。

SELECT id, IF(active = 1, 'Active', 'Inactive'), role, 
firstname, lastname, email, username, date_created 
FROM users

直接为您提供所需的内容,而无需循环选择结果并修改它们。