Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Wyrzucanie danych z bazy
Forum PHP.pl > Forum > PHP > Object-oriented programming
mxeon
Mój obiekt do obsługi bazy:

  1. <?php
  2.  
  3. class DatabaseAdapter {
  4.    
  5.    var $connection; //zmienna przechowująca połączenie
  6.    var $database; //zmienna z bazą danych
  7.    var $query; //zapytanie
  8.    var $result = array(); //zmienna z wynikiem zapytania {tabela}
  9.    var $rows = array(); //tablica z wynikami {tabela}
  10.    var $queries = 0;//ilość zadanych pytań - poczatkowa 0
  11.    var $lastId; //wartosc ostatniego uzytego pola auto incrisment
  12.  
  13.    const DBHOST = '';
  14.    const DBUSER = '';
  15.    const DBPASS = '';
  16.    const DBNAME = '';
  17.    
  18.    //metoda listingu błedów mysql    
  19.    function showMySQLError () {
  20.        
  21.        if (mysql_errno()!="") {
  22.        
  23.        echo '<b>'.mysql_errno().'</b> : '.mysql_error().'<br>';
  24.    
  25.        }
  26.    }
  27.    
  28.    //wypisuje inne błędy
  29.    function showMessage ($message) {
  30.        
  31.        if($message!="") {
  32.        
  33.        echo "<b>".$message."</b>";
  34.        
  35.        } else {
  36.            
  37.        }
  38.    
  39.    }
  40.    
  41.    //metoda połączenia z bazą danych
  42.    //pconnection okresla czy stale polaczenie 1-stale 0-niesatle
  43.    function connectMySQL ($pconnection) {
  44.        
  45.        if ($pconnection=='1') { //jezeli polaczenia stale
  46.            
  47.            $this->connection = mysql_pconnect(DatabaseAdapter::DBHOST, DatabaseAdapter::DBUSER, DatabaseAdapter::DBPASS);
  48.        
  49.        } else { //jezeli polaczenie niestale
  50.            
  51.            $this->connection = mysql_connect(DatabaseAdapter::DBHOST, DatabaseAdapter::DBUSER, DatabaseAdapter::DBPASS);
  52.    
  53.        }
  54.        
  55.        if ($this->connection && DatabaseAdapter::DBNAME!='') { //jezeli polaczenie istnieje i jest okreslona baza
  56.            
  57.            $this->database = mysql_select_db(DatabaseAdapter::DBNAME, $this->connection); //wybierz baze
  58.            
  59.            if ($this->database) { //jezeli sie udalo
  60.                
  61.                return true;
  62.                
  63.            } else { //jezeli nie ma tej bazy zwroc blad
  64.                
  65.                $this->showMySQLError();
  66.                $this->showMessage("Błąd połaczenia z bazą danych ".DatabaseAdapter::DBNAME." !");
  67.                return false;
  68.                
  69.            }
  70.        
  71.        } else { //jezeli polcznei nie istnieje lub nie ma bazy okresonej
  72.            
  73.            $this->showMySQLError();
  74.            $this->showMessage("Błąd połączenia z hostem !");
  75.            return false;
  76.            
  77.        }
  78.        
  79.        
  80.    }
  81.  
  82.    //koniec połacznia z bazą
  83.    function closeMySQLconnection() {
  84.        
  85.        if ($this->connection) { //jezeli istnieje polaczenie
  86.            
  87.            if ($this->result) mysql_free_result($this->result); //wyczysc tabele                
  88.            mysql_close($this->connection);
  89.            unset($this->query);
  90.            unset($this->result);
  91.            unset($this->database);
  92.            unset($this->connection);
  93.            return true;
  94.        
  95.        } else { //jezeli polaczenie nie istnieje
  96.            
  97.            $this->showMySQLError();
  98.            
  99.        }
  100.    }
  101.    
  102.    function queryMySQL ($query) {
  103.        
  104.        if ($query!="" && $this->database) {
  105.            
  106.            $this->query = $query;
  107.            if($this->result) mysql_free_result($this->result); //wyczysc tabele
  108.            if($this->result = mysql_query($this->query, $this->connection)) { //jezeli zapytanie sie powiedzie
  109.                
  110.                $this->lastId = mysql_insert_id(); //nadaje wartosc ostatniego pola autoincrisment
  111.                $this->queries++; //dodaje 1 do ilosci zapytan
  112.                return $this->result; //zwróc wynik
  113.            } else {
  114.                
  115.                $this->showMySQLError();
  116.                $this->showMessage("Błąd wykonania zapytania do bazy danych !");
  117.            }
  118.            
  119.        } else {
  120.            
  121.            $this->showMySQLError();
  122.            $this->showMessage("Bład połaczenia z bazą lub błędne zapytanie do bazy danych !");
  123.            
  124.        }
  125.    }
  126.    
  127.    //wyswietlanie tabeli
  128.    function fetchArray($resultHandle=0) {
  129.        
  130.        $this->result = ($resultHandle==0) ? $this->result : $resultHandle;
  131.            
  132.            if($this->database && $this->result) {
  133.                
  134.                $this->records = mysql_fetch_array($this->result, MYSQL_ASSOC);
  135.                if(is_array($this->records)) return $this->records;
  136.                else $this->showMySQLError();
  137.            
  138.            } else {
  139.                
  140.                $this->showMySQLError();
  141.                $this->showMessage("Błąd metody fetchArray");
  142.                
  143.                }
  144.    
  145.    }
  146.  
  147.    //pkazuje wyniki w wierszach
  148.    function fetchRow($resultHandle=0) {
  149.  
  150.        $this->result = ($resultHandle==0) ? $this->result : $resultHandle;
  151.        
  152.        if($this->database) {
  153.            
  154.            $this->records = mysql_fetch_row($this->result, MYSQL_ASSOC);
  155.            
  156.            if($this->records) {
  157.                
  158.                return $this->records;
  159.                
  160.            } else {
  161.            
  162.                $this->showMySQLError();
  163.                
  164.            }
  165.            
  166.        } else {
  167.                
  168.            $this->showMySQLError();
  169.            $this->showMessage("Błąd metody fetchRows !");
  170.            
  171.        }
  172.    }
  173.  
  174.  
  175.    //pokazuje ilosc wynikow
  176.    function showNumRows () { //pokazuje ilosc wynikow zapytania
  177.        
  178.        if($numRows = mysql_num_rows($this->result)) { //pobiezr ilosc wierszy
  179.            
  180.            return $numRows; //pokaz ilosc wierszy
  181.            
  182.        } else {
  183.            
  184.            $this->showMySQLError();
  185.            $this->showMessage("Nie można pobrać ilości zapytań");
  186.            
  187.        }
  188.        
  189.    }
  190. }
  191.  
  192.  
  193. ?>


obiekt do obsługi tabeli:

  1. <? require_once('DatabaseAdapter.class.php'); ?>
  2.  
  3. <?
  4.  
  5. class ObjectAdapter extends DatabaseAdapter
  6.  
  7.    function ListObjectsByCatID ($catID) {
  8.  
  9.        $this->connectMySQL(0);
  10.        $this->queryMySQL("SELECT * FROM objects WHERE categoryID = '$catID'");
  11.        $this->closeMySQLconnection;
  12.    
  13.        return $this->fetchArray();
  14.    
  15.    }
  16.    
  17.    
  18.    
  19.  
  20. }
  21.  
  22. ?>



ok i funkcję wywołuje tutaj:


  1. $object = new ObjectAdapter();
  2. $objectArrary = $object->ListObjectsByCatID($_GET['catid']);
  3. echo $objectArrary['object_serial'];


Moje pytanie jak zrobić żeby wyrzuciło mi całą tabelę narazie niestety tym sposobem doszedłem do wyświetlenia jednego pierwszego rekordu z wyniku zapytania.
skowron-line
pętla
http://pl2.php.net/manual/pl/function.mysql-fetch-object.php
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.