Cytat(bim2 @ 24.08.2007, 15:27:14 )

Nie rozumiem do końca o co chodzi. Wnioskuje, że to ma być coś pdobnego do phpmyadmin, że wpisujesz nazwe tabeli i wyświetla ci się tabelka HTML. Nie wiesz jak użyć?
Jeśli nie chcesz przy każdym wywołaniu klasy db, która się łaćzy możesz zdefiniować zmienne w klasie, ale wystarczy chyba 1 połączenie? Robisz 1 połaczenie i dla klasy db_table dajesz np $this->setInstanceDb(new Db); i później cała klasa miałaby z tego korzystać.
Opisz dokładniej co chcesz zrobić?

Zgadza się , chcę zrobić aplikację na wzór phpmyadmin z tym że zamiast możliwości edycji danych , jak jest to w phpmyadmin , mi wystarczy przeglądnięcie zawartości w przystępnej formie np. tabeli html .
W phpmyadmin dotarcie do konkretnej tabeli zajmuje trzy kroki ,
- podanie danych do logowania
- wybranie bazy danych
- wybranie tabeli aktualnej bazy danych
Do tego momentu moja aplikacja powinna działać w taki sam sposób , chcę tylko zamiast możliwości edycji , mieć podgląd w zawartość w formie tabeli html .
Reszta jak wyżej , mam trzy klasy ... , jak je teraz ładnie zaimplementować w jeden system ,
chodzi o to że chcę to zrobić tak jak powinno to wyglądać w fachowej aplikacji , nie po swojemu
na " dziko " tylko zgodnie z "duchem obiektów" że się tak wyrażę .
Czyli jak rozwiązał by to doświadczony programista ?
Dziękuję z góry za odpowiedzi i sugestie .
Załączam moje klasy , ZAZNACZAM że jeszcze ich nie dokończyłem i nie będą działały ,
ze szczegółami implementacji poradzę sobie sam , klasy mają tylko pokazać sam zamysł
budowy aplikacji i może rozplanowania klas .
<?php
////////////////////////////////////////////////////
/**
* Klasa zbiera informacje o bazie danych
* */
class db {
/**Przechowuje nazwę hosta */
private $sHost ;
/**Przechowuje nazwę użytkownika */
private $sUser ;
/**Przechowuje hasło dostępu */
private $sPass ;
/**Przechowuje identyfikator połączenia z bazą danych*/
private $rLink ;
/**Przechowuje listę dostępnych baz danych */
public $aDbList ;
/**Przechowuje listę dostępnych w wybranej bazie tabel */
public $aTableList ;
public function __construct($host = null , $user = null , $pass = null) {
$this->sHost = $host ;
$this->sPass = $pass ;
$this->sUser = $user ;
$this->connect($host,$user,$pass) ;
$this->getDbList() ;
}
/**Zwraca indentyfikator połączenia */
private function connect() {
$this->rLink = mysql_connect($this->sHost,$this->sUser,$this->sPass) ; }
/**Zwraca listę dostępnych baz danych*/
private function getDbList() {
$this->aDbList[] = $row->Database ;
}
}
/**Pobiera listę tabel z bazy MySQL*/
public function getTableList ($sDbName) {
$this->aTableList = $row ;
}
}
}
}
////////////////////////////////////////////////////////////////////////////////////
/**
* Klasa zbiera informacje o tableli
*/
class db_table {
/**Liczba wierszy w tablicy */
public $iNumRows ;
/**Liczba pól jednym wierszu */
public $iNumFields ;
/**Tablica indeksowana zawierająca obiekty z informacjami o polach */
public $aFieldObject ;
/**Tablica indeksowana zawierająca wartości poszczególnych pól w zapytaniu*/
public $aFieldValues ;
/**Inicjalizuje funkcje i zmienne */
public function __construct(query $rResult) {
$this->getNumRows($rResult) ;
$this->getNumFields($rResult) ;
$this->getFieldObject($rResult) ;
$this->getFieldValues($rResult) ;
}
/**Pobiera liczbę wierszy zwrócownych w zaptyaniu */
public function getNumRows($db) {
}
/**Pobiera liczbę pól jednego wiersza zwrócownych w zapytaniu */
public function getNumFields($db) {
$allFields = $numFields * $this->numRows ;
$this->numFields = $allFields / $this->numRows ;
}
/**Pobiera dane pól w postaciu obiektu i zapisuje w tablicy */
public function getFieldObject($db) {
for($i = 0 ; $i < $this->numFields ; $i++) {
}
}
/**Pobiera wartości pól do tablicy indeksowanej */
public function getFieldValues($db) {
for($i = 0 ; $i < $this->numRows ; $i++) {
}
}
}
/////////////////////////////////////////////////////////////////////////////
* Klasa drukuje tablice w HTML
*/
class table {
public function __construct($db_table) {
$this->table($db_table);
}
/** Drukuje nazwy kolumn na podstawie przekazanego obiektu klasy db_table->fieldObject*/
public function colNames ($db_table) {
for($i = 0 ; $i < $db_table->numFields ; $i++) {
print $db_table->fieldObject[$i]->name ; }
}
/**Drukuje wiersze zawierające komórki z treścią */
public function colValues($db_table) {
for($i = 0 ; $i < $db_table->numRows ; $i++) {
for($j = 0 ; $j < $db_table->numFields ; $j++) {
print $db_table->fieldValues[$i][$j] ; }
}
}
/**Drukuje tablice */
public function table($db_table) {
print '<table width= 100%>' ; $this->colNames($db_table) ;
$this->colValues($db_table) ;
}
}
//////////////////////////////////////////////////////////////////////////////////////
?>