[PHP] Jak wypisać zawartość bazy danych dBase (dbf)?

0x01 graphic

Chcesz wypisać na ekranie zawartość całej bazy danych DBF.

0x01 graphic

Jeżeli już zdecydujesz się na korzystanie z baz danych formatu dBase, musisz zapewnić sobie dostęp do wszystkich rekordów, a więc przeglądać je i wypisywać np. na ekranie. Stwórzmy prostą bazę i następnie wyświetlmy wszystkie rekordy i pola z tych rekordów.

Bazę zakładamy tak, jak opisałem to w osobnej poradzie. Dopisujemy też do niej kilka rekordów, które następnie wypiszemy na ekranie.

<?

$dbf = "moja.dbf";

$struktura = array(

array("imie", "C", 50),

array("nazwisko", "C", 50),

array("dataur", "D"),

array("zarobki", "N", 10, 2),

);

if (!dbase_create($dbf, $struktura)) echo "Błąd podczas tworzenia bazy!";

$dbf = "moja.dbf";

$db = dbase_open($dbf, 2); // 0 - odczyt, 1 - zapis, 2 - zapis i odczyt

dbase_add_record($db, array("Jan","Kowalski","19740123","2200.00"));

dbase_add_record($db, array("Piotr","Paks","19780411","1923.40"));

dbase_add_record($db, array("Ania","Kiwak","19810929","1798.11"));

dbase_add_record($db, array("Basia","Nowak","19720303","2112.00"));

dbase_close($db);

?>

Ok. Mamy już testową bazę. Teraz czas na prosty skrypt, który przeglądnie wszystkie rekordy i wypisze je na stronie w tabeli:

<?

$dbf = "moja.dbf";

$db = dbase_open($dbf, 0); // 0 - odczyt, 1 - zapis, 2 - zapis i odczyt

$kolumn = dbase_numfields($db);

$rekordow = dbase_numrecords($db);

echo "<table border=1>";

echo "<tr><td>imie</td><td>nazwisko</td>

<td>data ur.</td><td> zarobki</td></tr>";

for ($i=1;$i<=$rekordow;$i++) {

$rekord = dbase_get_record($db, $i);

echo "<tr>";

for ($j=0; $j<$kolumn; $j++) echo "<td>$rekord[$j]</td>";

echo "</tr>";

}

echo "</table>";

dbase_close($db);

?>

Otwieramy bazę do odczytu (flaga 0). Do zmiennej $kolumn pobieramy liczbę kolumn, czyli ilość pól w jednym rekordzie. Do zmiennej $rekordow pobieramy ilość wszystkich rekordów w bazie.

Następnie możemy wypisać nagłówki tabeli. Dalej, w pętli for pobieramy poszczególne rekordy (od 1, nie od 0!), w kolejnej pętli for (wewnątrz) poruszamy się po polach danego rekordu wypisując ich wartości w komórkach tabeli, w rzędzie.

Na koniec zostało nam zamknąć tabelę i bazę. Zawartość bazy mamy na ekranie:

imie

nazwisko

data ur.

zarobki

Jan

Kowalski

19740123

2200

Piotr

Paks

19780411

1923.4

Ania

Kiwak

19810929

1798.11

Basia

Nowak

19720303

2112