从MYSQL数据库数据生成EXCEL TXT、PDF等文档;哪个函数替换mysq_field_name


Generating Documents such as EXCEL TXT, PDF from MYSQL DB data & which function replace mysq_field_name

伙计们帮我纠正我的代码,我想获取一些MYSQL DB字段来生成EXCEL和PDF文件。在标题部分,我需要添加另外两列COMMENT和EXAM,并能够在使用条件语句生成文件时填充COMMENT和CLASS。

注意:

  1. 提供的代码可以使用mysql而不是mysqli生成EXCEL文件
  2. 分数($score)应为%,例如20%
  3. $comment条件示例
if($score < 35){
    $comment = fail;
}else{
    $comment = pass;
}

代码问题

  1. 不能用mysqli_field_name而是用mysql_field_name(你能解释一下吗)

代码

$sql            = mysqli_query($con, "
SELECT firstname, lastname, student_id, score, sex
FROM students AS student
INNER JOIN scores AS score ON student.student_id = score.candidateid
WHERE score.subjectid = '200'
");
$columns_total  = mysqli_num_fields($sql);
// Get The Field Name
for ($i = 0; $i < $columns_total; $i++) {
    $heading    =   strtoupper(mysqli_field_name($sql, $i));
    $output     .= '"'.$heading.'",';
}
$output .="'n";
// Get Records from the table
while ($row = mysqli_fetch_array($sql)) {
for ($i = 0; $i < $columns_total; $i++) {
$output .='"'.$row["$i"].'",';
}
$output .="'n";
}
// Download the file
$filename =  uniqid(time()).".csv";
header('Content-type: application/csv');
header('Content-Disposition: attachment; filename='.$filename);
echo $output;
exit;

感谢您抽出时间

只是为了让它成为一个合适的答案,供将来参考,并在评论中回答您的两个问题。

为mysql_field_name()访问mysqli的类似函数的答案是将mysql_fielt_name读取到新的mysqli

要添加另一列,假设您按照示例通过,因为结果是在行中构建的,那么您可以在for循环后附加一个检查:

for ($i = 0; $i < $columns_total; $i++) {
    $heading    =   strtoupper(mysqli_field_name($sql, $i));
    $output     .= '"'.$heading.'",';
}
$output     .= '"PASSED?",';
$output .="'n";

并且类似地在CCD_ 3循环内部和在for()循环之后:

while ($row = mysqli_fetch_array($sql)) {
    for ($i = 0; $i < $columns_total; $i++) {
        $output .='"'.$row["$i"].'",';
    }
    // add a pass column
    if($score < 35){
        $comment = "fail";
    }else{
        $comment = "pass";
    }
    $output     .= '"'.$comment.'"';
    $output .="'n";
 }

尚未测试代码,但这应该是您的问题和评论

的有效实现