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

Podobne dokumenty