Привет ребята.Пытаюсь сделать экспорт таблицы из БД в xls файл.Вот код
Все работает до второго foreach.Начиная с второго foreach код не работает и ломается там.В чем проблема?Я уверен что как то неправильно по логике обрабатываю массивы и тут и ломается все.
dpaste -
dpaste.com/21BHXTX (если вдруг синтаксис глаза режет)
<?php
$link = mysqli_connect("localhost", "root", "", "");
mysqli_select_db($link, "blog");
$query = 'SELECT * FROM products';
$result = mysqli_query($link, $query);
if (isset ($_POST['export'])) {
while ($row = mysqli_fetch_array($result, MYSQLI_ASSOC)) {
foreach ($row as $k => $val) {
$html = '<td>' . $val . '</td><br>';
echo $html;
}
}
}
if (isset ($_POST['download'])) {
require_once 'Classes/PHPExcel.php';
require_once 'Classes/PHPExcel/Writer/Excel5.php';
$xls = new PhpExcel();
$xls->setActiveSheetIndex(0);
$sheet = $xls->getActiveSheet();
while ($row = mysqli_fetch_array($result, MYSQLI_ASSOC)) {
$i = 0;
foreach ($row as $ar) {
$j = 0;
//echo 'arr='.$arr;
//echo 'j=';
foreach ($ar as $val) {
// echo 'arr=' . $val;exit();
$sheet->setCellValueByColumnAndRow($j, $i, $val);
$j++;
//echo 'j=';//empty
// echo 'val1='.$val;
}
$i++;
//echo 'i='.$i;
}
}
header("Expires: Mon, 1 Apr 1974 05:00:00 GMT");
header("Last-Modified: " . gmdate("D,d M YH:i:s") . " GMT");
header("Cache-Control: no-cache, must-revalidate");
header("Pragma: no-cache");
header("Content-type: application/vnd.ms-excel");
header("Content-Disposition: attachment; filename=matrix.xls");
$objWriter = new PHPExcel_Writer_Excel5($xls);
$objWriter->save('php://output');
}
?>
<!doctype html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
</head>
<body>
<form method="POST">
<button id="button" name="export" class="btn">Show table</button>
<button id="button_dwn" name="download" class="btn">Download Table</button>
</form>
<table>
<tbody>
<tr></tr>
</tbody>
</table>
</body>
</html>