我刚刚为我的应用程序制作了一个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;
答案 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
直接为您提供所需的内容,而无需循环选择结果并修改它们。