PHP tabela html oraz wynik query zapisany do pliku csv

0

Jestem nowym użytkownikiem i raczkuję w PHP, stąd moje pytanie (czytałem inne tematy, ale one nie do końca rozwiązują mój problem. Mianowicie mam dane - raport finansowy z 2015 oraz 2016 roku. 2015 - zapisany w tabeli mysql, oraz 2016 generowany z bazy, ale zliczający dynamicznie to co dzieje się w zamówieniach. 2015 jest na szztywno jako arch. Wyświetlam to jako całość PHP ww postaci tabeli HTML jeden rok pod drugim.

Chciałbym móc zapisać i te dane arch i te dynamiczne do pliku csv. Nie wiem jak to zrobić, domyślam siętylko że musi to być coś takiego

$dane_do_csv;

$sql = ('select * from arch');

$dane_do_scv += $wynik_query;

$dane_do_scv  += dynamiczne obliczenie 1
$dane_do_scv  += dynamiczne obliczenie 2

koniec, zapisz plik

 

Nie znam się na tyle jeszcze na PHP, aby to zrobić bez podpowiedzi. Rozwiązania na forum pokazują przeważnie tą cześć z bazą danych. Będę wdzięczny za jakiekolwiek podpowiedzi.

0

Zobacz tutaj: http://php.net/manual/en/function.fputcsv.php gotowa funkcja, która zapisuje do pliku .csv musisz tylko pobrać dane.

0
 
<?php
	if (isset($_POST['exel']))
	{
		$list = array (
		array('aaa', 'bbb', 'ccc', 'dddd'),
		array('123', '456', '789'),
		array('"aaa"', '"bbb"')
	);

	$fp = fopen('file.csv', 'w');

	foreach ($list as $fields) {
		fputcsv($fp, $fields);
	}

	fclose($fp);
}
 
echo('<form action="hide.php?page=raporty" method="post">
<input type="hidden" name="exel" value="true">
<input type="submit" value="Export do EXEL">
</form>');
?>

Czytałem o tej funkcji, podstawiłem prosty przykład u siebie na serwerze i po kliknięciu w przycisk nic się nie dzieje ?

0

dobra mam, plik zapisuje się na serwerze, pewnie trzeba zmusić php aby pobrać go na dysk :)

0

Po zapisaniu pliku możesz przekierować użytkownika do pliku wyskoczy popup z wybraniem lokalizacji gdzie zapisać plik.

0

Przepraszam, to może głupie, ale nie za bardzo też czaje, jak mogę sobie wczytać to co mam w swojej funkcji do tablicy, aby podać ją do csv. Moja funkcja to
function archiwum()
{
$sql = mysql_query("SELECT idRaport, data, obr_netto, obr_polster, obr_posrednik, koszty, zysk, zysk_polster, zysk_posrednik, z_lukasz, z_pawel, z_rafal from raporty where idRaport <= 26 order by data ASC");

	if(mysql_num_rows($sql) > 0) 
	{ 
		while ($wynik = mysql_fetch_assoc($sql))
		{
			if($wynik['idRaport'] == 26)
			{
				echo '<tr><td><b>' . $wynik['data'] . '</b></td><td><b>' . $wynik['obr_netto'] .  ' zł</b></td><td><b>' . $wynik['obr_polster'] .  ' zł</b></td><td><b>' . $wynik['obr_posrednik'] .  ' zł</b></td><td><b>' . $wynik['koszty'] .  ' zł</b></td><td><b>' . $wynik['zysk'] .  ' zł</b></td><td><b>' . $wynik['zysk_polster'] .  ' zł</b></td><td><b>' . $wynik['zysk_posrednik'] .  ' zł</b></td><td><b>' . $wynik['z_lukasz'] .  ' zł </b></td><td><b>' . $wynik['z_pawel'] .  ' zł </b></td><td><b>' . $wynik['z_rafal'] .  ' zł </b></td></tr>';
			}
			else
			{
				echo '<tr><td>' . $wynik['data'] . '</td><td>' . $wynik['obr_netto'] .  ' zł</td><td>' . $wynik['obr_polster'] .  ' zł</td><td>' . $wynik['obr_posrednik'] .  ' zł</td><td>' . $wynik['koszty'] .  ' zł</td><td>' . $wynik['zysk'] .  ' zł</td><td>' . $wynik['zysk_polster'] .  ' zł</td><td>' . $wynik['zysk_posrednik'] .  ' zł</td><td>' . $wynik['z_lukasz'] .  ' zł </td><td>' . $wynik['z_pawel'] .  ' zł </td><td>' . $wynik['z_rafal'] .  ' zł </td></tr>';
			}
		}
	}
}
0

Zmienna wynik sama w sobie jest tablicą więc możesz ją wrzucić do pliku.

0

Ok, siedzenie do 4 nad ranem, ale udało się. Zapisuje plik na serwerze. Teraz chce go pobrać na dysk. Wpisuje coś takiego jednak zapisuje mi plik nie dość ,że nie w tym formacie to zrzuca całą stronę - znaczy kod html. Ktoś coś ?

header( 'Content-Type: text/csv' );
         header( 'Content-Disposition: attachment;filename='.$fp); 
0
header('Content-Type: text/csv');

 
		header('Content-Disposition: attachment; filename="file.csv"');
 

plik sie pobier we własciwym frmacie, ale nim jest cały kod html, a jak wyswietle ten plik na serwrze są w nim włsciwe dane ??

0

Bo wrzucasz do odpowiedzi same nagłówki http. Zapomniałeś dołączyć plik.

PS. Co to jest "exel"?

1 użytkowników online, w tym zalogowanych: 0, gości: 1