![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 22 Pomógł: 0 Dołączył: 22.12.2009 Ostrzeżenie: (0%) ![]() ![]() |
Witam,
Mam problem z wyświetleniem danych z baz danych. Robię aplikację obiektowo a raczej sie uczę. Bo jest robię bez obiektów to wyświetla mia zawartość bazy danych. Pewnie mam coś źle napisane w tej klasie która odpowiada za wyświetlanie danych. Struktura aplikacji wygląda następująco: Głównym rdzeniem aplikacji jest plik apcore.php CODE <?php //Dołączenie pliku konfiguracyjnego require_once(APP_DIR.'/configuration/define.php'); require_once(APP_DIR.'/aplication/comunication.php'); require_once(APP_DIR.'/aplication/object.php'); //Klasa bazowa PEAR require_once('PEAR.php'); require_once('DB.php'); //Moduły sklepu -------------------------------START ---------------------- //Katalog require_once(APP_DIR.'/modules/catalog.php'); //-----------------------KONIEC------------------------------ class AppCore { private static $_appInitialized; /** * Obiekt PEAR pamiętający połączenie z bazą danych */ public static $_dataBaseConnection; public static function initializeApplication() { //Próba nawiązania połączenia z bazą danych if (PEAR::isError(self::$_dataBaseConnection = DB::connect(DSNInit()))) { if (LOG_WRITE) self::$_logObject->log('Nie można nawiązać połączenia z bazą danych. Przyczyna: '.self::$_dataBaseConnection->getMessage(), LOG_ERR); throw new Error('dbconnectionerror'); } } public static function Query($queryString) { return self::$_dataBaseConnection->Query($queryString); } /** * Metoda obiera ilość wierszy objętych działaniem polecenia * INSERT, UPDATE lub DELETE * @return mixed */ } //Inicjacja aplikacji try { AppCore::initializeApplication(); } catch (Error $err) { echo (Lang::getMessage('error').': '.Lang::getMessage($err->getMessage()).'<br/>'); exit (Lang::getMessage('endofapplication')); } ?> Plik do odpowiedzialny za komunikacje z baza comunication.php: CODE <?php /************************************ * * Połaczenie inicializycjne do bazy danych * ************************************/ function DSNInit() { // Dołączenie obsługi klasy PEAR-DB require_once('DB.php'); return DB_TYPE . '://' . DB_USERNAME . ':' . DB_PASSWORD . '@' . DB_HOST . '/' . DB_NAME; } ?> Plik Klasy Object.php : CODE <?php abstract class Object { /**#@+ * @access protected */ /** * @var string Unikalny identyfikator obiektu (32 znaki). */ protected $_Id; /** * @var string Identyfikator w?a?ciciela obiektu. */ protected $_Owner; /** * @var string Typ obiektu (wszystkie typy przechowywane s? w bazie danych) */ protected $_Type; /** * @var string Opis obiektu */ protected $_Desc; /** * @var string Data utworzenia obiektu */ protected $_CreateDate; /** * @var string Data ostatniej modyfikacji obiektu */ protected $_LastModifyDate; /** * @var bool Aktywno?? obiektu * (TRUE - obiekt jest aktywny * FALSE - obiekt jest niekatywny) */ protected $_Active; /**#@-*/ /** * Domy?lna metoda wywo?ywana podczas inicjalizacji obiekt?w tej klasy * @access public */ public function __construct () {} /** * Ustawia unikalny identyfikator obiektu * @access public * @param string $id Unikalny identyfikator * @return bool */ public function setId($id){$this->_Id = $id;} } ?> Plik Catalog.php który zawiera klasę do wyświetlania danych z bazy: CODE <?php class Catalog extends Object { public function __construct($catdata = array()) { $this->_SubCategory = NULL; //Tworzenie obiektu } public function getCategoryProductsNumber() { $sqlquery = 'select * from categories'; if (!$result = AppCore::Query($sqlquery)) throw new Error('dberror'); if (!$num = $result->numRows()) { return 0; } return $num; } } ?> Struktura bazy jest bardzo prosa i składa sie kilku rekordów. Chodzi o to żeby coś wyświetlić. Początkowo wyskakiwały mi błędy które stopniowo usuwałem, a teraz mam biały ekran i nic nie wyświetla. Nie wiem jak sobie poradzić z góry dziękuje za wskazówki. Będę bardzo wdzięczny za pomoc bo utknąłem w miejscu i nie wiem jak sobie z tym poradzić. |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 28.06.2025 - 01:19 |