Эй, я пытаюсь заполнить CSV значениями из моего массива. Как я могу это сделать ?
$sql = "SELECT accountNumber, Name,studentManager,contract,
nationality,university,major,Course,specialNotes,
Phone,email,birthday,uniAddress
FROM " . $dbname . "WHERE id ='$id'";
$query2 = mysqli_query($conn, $sql);
$thisArray = mysqli_fetch_all($query2, MYSQLI_NUM);
header("Content-type: application/csv");
header("Content-Disposition: attachment; filename=userData.csv");
$fp = fopen('php://output', 'w');
foreach ($thisArray[0] as $row3) {
fputcsv($fp,$row3);
}
fclose($fp);
Когда вы получаете данные в $thisArray
, он создает массив, где каждая строка является массивом всех значений поля. Поэтому, когда вы используете $thisArray[0]
в следующей строке …
foreach ($thisArray[0] as $row3) {
Это просто забирает первую строку данных, которые вы получили. $row3
будет каждое отдельное поле и fputcsv
ожидает, что это будет массив.
Просто измените эту строку на
foreach ($thisArray as $row3) {
а также $row3
будет каждая строка данных.
(Просто так есть ответ на это)
Других решений пока нет …