Zrzucenie danych z MySQL do plików .xls (EXCEL)
Transkrypt
Zrzucenie danych z MySQL do plików .xls (EXCEL)
Artykuł pobrano ze strony eioba.pl Zrzucenie danych z MySQL do plików .xls (EXCEL) W sumie można się zastanowić, po co zrzucać do arkusza kalkulacyjnego bazę danych. Odpowiedź brzmi - prościej się ją przegląda. Jak to zrobić, czyli jak zrzucić odpowiednie pola do pliku excelowskiego? Nic prostszego. Najlepiej zaprezentować to na przykładzie prostej bazy danych: TABELA USER ---------------------------------| ID | IMIE | NAZWISKO | MIASTO | ================================== | 1 | JAN | KOWALSKI | WA-WA | ---------------------------------| 2 | ULA | NOWAK | LODZ | ---------------------------------| 3 |ROMAN | NAWROCKI | KOLO | ---------------------------------- TABELA USER_WIEK ------------------------------| ID | DZIEN | MIESIAC | ROK | =============================== | 1 | 22 | 06 | 1999 | ------------------------------| 2 | 21 | 11 | 1978 | ------------------------------| 3 | 19 | 09 | 1907 | ------------------------------- Chcemy uzyskać plik z następującymi danymi: | LP | IMIE | NAZWISKO | ROK URODZNIA | oczywiście przy założeniu, że każda dana jest w osobnej komórce, a następna seria danych jest w następnym wierszu. Na początek tworzymy tablice z nagłówkami (nazwami kolumn): <? $naglowki = array ( 'Lp.', 'Imię', 'Nazwisko', 'Rok urodzenia' ); $nastepny_wiersz = "\n"; // separatory $nastepna_kolumna = "\t"; // separatory ?> następnie odczytujemy odpowiednie dane z bazy danych i tworzymy serię danych (cały wiersz) <? function odczyt($id) { Connect(); // domyślna funkcja do połączenia z bazą $sql="SELECT * FROM user WHERE id='$id' "; // zapytanie o wszystkie pola z tablicy USER gdzie ID będzie równe $id $query=mysql_query($sql); // wykonanie zapytania if (!$user=mysql_fetch_array($query)) echo mysql_error(); //odczyt danych z warunkiem jeżeli sie nie powiedzie $sql1="SELECT * FROM user WHERE id='$id' "; $query1=mysql_query($sql1); if (!$user_wiek=mysql_fetch_array($query1)) echo mysql_error(); $seria = array ( $id, $user['imie'], $user['nazwisko'], $user_wiek['rok'], $następny_wiersz ); return $seria; } ?> nasza funkcja ODCZYT($ID) zwraca nam cały wiersz danych, teraz należy umieścić tę funkcję w pętli i gotowe. <? if($plik = fopen("moj_plik.xls", "wb")) // utworzenie pliku echo "<br>PLIK ZOSTAŁ UTWORZONY !!! "; else echo "Błąd tworzenia pliku !!!"; foreach ($naglowki as $pole) { // pętla odczytująca tylko tablice $dane.="$pole $nastepna_kolumna"; // zmienna $dane się zapełnia } $sql="SELECT id FROM user"; $query=mysql_query($sql); while ($numer=mysql_fetch_array($query)) foreach (odczyt($numer['id']) as $pole) { // pętla odczytująca tylko tablice $dane.="$pole $nastepna_kolumna"; // zmienna $dane się zapełnia $dane.=$nastepny_wiersz; } fputs($plik, $dane); //zapisanie danych w pliku fclose($plik); //zamknięcie pliku ?> Dowolnie zmieniając funkcję ODCZYT() oraz tablicę $naglowki możemy tworzyć dowolnie zapełniony plik XLS. Źródło: 4programmers.net. Treść udostępniona na zasadach licencji Creative Commons Attribution Autor: 4programmers.net Artykuł pobrano ze strony eioba.pl