Poniżej przedstawiam kody źródłowe plików, które odpowiadają za klasę. Nie chcąc zasypywać forum wrzucam tylko funkcje odpowiadające na wyświetlanie danych:
mysql.php - klasa dla bazy mysql
<? class sqlDb { var $dbhost; var $dbuser; var $dbpass; var $dbname; var $dbconnect; var $dbresult; ...................CIACH // // Zapytanie do bazy danych // function sendquery($query) { // // Usuwamy poprzednie istniejące zapytania // if($this->dbresult) { return $this->dbresult; } else { return false; } } ...................CIACH // // Pobieramy wiersz z zapytania // function fetchrow($query_id = 0) { if(!$query_id) { $query_id = $this->dbresult; } if($query_id) { return $this->row[$query_id]; } else { return false; } } // // Pobieramy wszystkie wiersze z zapytania // function fetchrowset($query_id = 0) { if(!$query_id) { $query_id = $this->dbresult; } if($query_id) { { $result[] = $this->dbrowset[$query_id]; } return $result; } else { return false; } } } ?>
postresql.php - klasa dla bazy postresql
<? class sqlDb { var $dbconnect; var $dbresult; var $dbnumqueries = 0; ...................CIACH // // Zapytanie do bazy danych // function sendquery($query) { // // Usuwamy poprzednie istniejące zapytania // $this->dbnumqueries++; if($this->dbresult) { $this->dblastquerytext[$this->dbresult] = $query; $this->dbrownum[$this->dbresult] = 0; return $this->dbresult; } else { return false } } ...................CIACH // // Pobieramy wiersz z zapytania // function fetchrow($query_id = 0) { if(!$query_id) { $query_id = $this->dbresult; } if($query_id) { if($this->dbrow) { $this->rownum[$query_id]++; return $this->dbrow; } } else { return false; } } // // Pobieramy wszystkie wiersze z zapytania // function fetchrowset($query_id = 0) { if(!$query_id) { $query_id = $this->dbresult; } if($query_id) { $this->rownum[$query_id] = 0; { $result[] = $this->dbrowset; $this->dbrownum[$query_id]++; } return $result; } else { return false; } } } ?>
db.php - odpowiada za wybór bazy i połączenie
<? switch($dbtype) { case 'mysql': include($root_path . 'mysql.php'); break; case 'postgresql': include($root_path . 'postgresql.php'); break; } // Tworzymy połączenie z bazą danych $db = new sqlDb(); $db->connect($dbhost, $dbuser, $dbpass, $dbname); if(!$db->dbconnect) { } ?>
config.php - konfiguracja bazy danych
<? $dbhost = ''; $dbuser = ''; $dbpass = ''; $dbname = ''; $dbtype = 'mysql'; // lub postresql ?>
show.php - przykladowy plik z wykonaniem klasy
<? $root_path = ''; include($root_path . \"config.php\"); include($root_path . \"db.php\"); // TWORZYMY TABELE - dziala $sql = \"CREATE TABLE sqls_test (id CHAR(10), tekst CHAR(20))\"; $result = $db->sendquery($sql); // WRZUCAMY REKORD - dziala $sqla = \"INSERT INTO sqls_test(id, tekst) VALUES ('2', 'jeden')\"; $resulta = $db->sendquery($sqla); // WRZUCAMY REKORD - dziala $sqlb = \"INSERT INTO sqls_test(id, tekst) VALUES ('4', 'dwa')\"; $resultb = $db->sendquery($sqlb); // ODBIERAMY REKORDY - dziala $sqlc = \"SELECT * FROM sqls_test ORDER BY id ASC\"; $resultc = $db->sendquery($sqlc); // WYSWIETLAMY REKORDY - nie dziala if($rows = $db->fetchrowset($resultc)) { $id = $rows['id']; // NIE WIEM CZY TO TAK MA BYC :C $tekst = $rows['tekst']; // NIE WIEM CZY TO TAK MA BYC :C } // ODLACZAMY SIE OD BAZY - dziala $db->disconnect; ?>
Proszę o pomoc jeżeli codzi o wyświetlanie... bo funkcja fetchrow działa... ale fetchrowset nie

POMOCY