[PHP] Jak wypisać zawartość bazy danych dBase (dbf)?
Chcesz wypisać na ekranie zawartość całej bazy danych DBF.
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 |