Генерация документов, таких как EXCEL TXT, PDF из данных MYSQL DB & amp; какая функция заменяет mysq_field_name

Ребята, помогите мне исправить код, приведенный ниже. Я хотел бы получить некоторые поля базы данных MYSQL для создания файла EXCEL и PDF. В заголовочной части мне нужно добавить два других столбца COMMENT и EXAM, а также заполнить COMMENT и CLASS, когда файл будет сгенерирован с помощью оператора условия.

ЗАМЕТКИ:

  1. Предоставленный код может генерировать EXCEL-файл, используя mysql, а не mysqli.
  2. Оценка ($ оценка) должна составлять%, например, 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;

Спасибо за ваше время

-1

Решение

Просто чтобы сделать это правильным ответом для дальнейшего использования и ответить на оба ваших вопроса в комментариях.

Ответ на доступ к аналогичной функции для mysqli для mysql_field_name () вы читаете mysql_field_name для нового mysqli

Чтобы добавить еще один столбец, скажем, если вы прошли в соответствии с вашим примером, так как результатом является построение в строках, вы добавляете проверку после for цикл:

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

и так же внутри while() цикл и после 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";
}

Не проверял код, но это должно быть работающей реализацией вашего вопроса и комментариев

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]