Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> połączenie klas w jeden system, projektowanie aplikacji
Mariner
post
Post #1





Grupa: Zarejestrowani
Postów: 47
Pomógł: 6
Dołączył: 26.12.2006
Skąd: Wrocław

Ostrzeżenie: (0%)
-----


Witam .

Chcę stworzyć aplikację która ma pokazywać zawartość dowolnej bazy danych Mysql.
Aplikację można będzie sprzęgnąć z dowolną bazą danych mysql , w trzech krokach
użytkownik poda dane potrzebne do utworzenia połączenia , wybierze nazwę bazy danych , i nazwę interesującej go tableli , aplikacja wyświetli zawartość tabeli w formie tabeli HTML
czyli nazwy poszczególnych pól jako pierwszy wiersz , każdy następny wiersz będzie opowiadał
wartościom tych pól w bazie danych .

mam klasy takie jak :
db -> łączy się z serwerem baz danych , pobiera listę baz i przechowuje w tablicy
indeksowanej , pobiera listę tabel w wybranej przez użytkownika (za pomocą
odpowiedniej metody) danych i przechowuje w tablicy indeksowanej .

db_table-> korzystając z obiektu db , zbiera informacje o wybranej przez użytkownika tabeli ,
czyli liczba wierszy , liczba pól w jednym wierszu , informacje o poszczególnych
polach , typ danych itp , oraz wartości poszczególnych pól .

table -> korzystając z informacji przetrzymywanych w obiekcie db_table , klasa ta drukuje
tablice HTML , w pierszym wierszu drukuje nazwy poszczególnych pól a w następnych
wierszach ich zawartość .


Problem polega na tym że :

- nie wiem jak połączyć te klasy w jeden działający system , czy może utworzyć klasę np.
system która będzie zarządzała obiektami poszczególnych klas i wyświetlała ich zawartość
w odpowiednim momencie ?

- czy dla każdej akcji odbywającej się w systemie ( np. podanie danych potrzebnych połączenia
z bazą) tworzy się odpowiednią klasę ?

- czy tak napisać klasy aby każda działała w każdym kroku czyli logowanie do serwera baz
danych to jedna klasa , wyświetlanie listy dostępnych baz druga klasa , wyświetlanie listy tabel
to następna klasa , i w końcu wyświetlanie tabel z bazy danych to ostatnia klasa .

- jak rozwiązać problem aby nie wpisywać danych potrzebnych do połączenia z serwerem baz
danych z każdym razem kiedy się wrócę i będę chciał zobaczyć dane innej bazy danych
czy rozwiązaniem jest ustanowienie sesji ?

Z góry dziękuję z podpowiedzi .
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
bim2
post
Post #2





Grupa: Zarejestrowani
Postów: 1 873
Pomógł: 152
Dołączył: 9.04.2006
Skąd: Berlin

Ostrzeżenie: (0%)
-----


Ja bym to zrobił tak, że klasa db, ma sie tylko łączyć z bazą danych i obsługiwać zapytania. Taka nakładka na funkcję mysql_(). Zaś klasa DbTable ma obsługiwać tabele z bazy danych.
Więc mamy 3 klasy:
- Db
- DbTable
- DbToHtml

I robimy tak:
  1. <?
  2. $oDb = new Db;
  3. $oDb->connect([...]); // <- to gdzies w confingu etc
  4.  
  5. $oDbTable = new DbTable($oDb);
  6.  
  7. $oDbToHtml = new DbToHtml;
  8.  
  9. $oDbToHtml->generateTable($oDbTable->getArray()); //array('tableka_1' => array( wiersz_1 => value_wiersza))
  10. ?>


Tak mniej więcej powinno to wyglądać (moim zdaniem). Jak ktoś ma lepsze pomysły napiszcie (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg)

PS. Sorry, że długo nie odpowiadałem ale weekend był ;]

Ten post edytował bim2 26.08.2007, 20:32:36
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 26.12.2025 - 23:18