За последние 24 часа нас посетили 17719 программистов и 1281 робот. Сейчас ищут 1389 программистов ...

Нужна помощь с ООП

Тема в разделе "PHP для новичков", создана пользователем Andrey, 6 авг 2009.

  1. Andrey

    Andrey Активный пользователь

    С нами с:
    3 авг 2009
    Сообщения:
    10
    Симпатии:
    0
    Адрес:
    Simferopol
    Народ!
    Срочно нужна помосчь!
    Пытаюсь сам разобраться в OOP PHP.
    Написал небольшой класс и сценарий, который его юзает.
    Вылетает ошибка вообще тупейшая - "Fatal error: Call to undefined function setTableFields() in ...."
    вот код класса:
    PHP:
    1.  
    2. <?php
    3.     //class DBapplication
    4.    
    5.    
    6.     class DBapplication
    7.     {  
    8. //-----------------------Opredel9em peremennie----------------------------------------
    9.  
    10.         //$db_const = file("./admin/db_const.yax");  //host, login, pass, defDB, defTable
    11.         public $db_const = array("localhost", "andrex", "master", "users", "user_info");
    12.        
    13.         private $_DBhost, $_DBuserLogin, $_DBuserPass, $_DBdefaultDataBase, $_DBdefaultTableName;
    14.         private $_DBlink;
    15.         private $_tableFields;
    16.         private $_user_info;
    17.  
    18. //-----------------------Opredel9em massiv poley tablici SQL------------------------
    19.         public function setTableFields()
    20.         {
    21.             DB_connect();
    22.             $result = mysql_list_fields(getDBDefaultDataBase(), getDBDefaultTableName(), $this->DBlink);
    23.             $count = mysql_num_fields($result);
    24.            
    25.             for($i=0; $i<$count; $i++)
    26.             {
    27.                 $this->_tableFields[mysql_field_name($result, $i)] = null;
    28.             }
    29.         }
    30. //----------------------peremennie na connect DB ---------------------------------------
    31. //---------------------------Host-------------------------------------     
    32.         public function getDBhost()
    33.         {
    34.             return $this->_DBhost;
    35.         }
    36.        
    37.         public function setDBhost()
    38.         {
    39.             $this->_DBhost = $db_const[0];
    40.         }
    41. //------------------------- UserLogin------------------------------------
    42.         public function getDBuserLogin()
    43.         {
    44.             return $this->_DBuserLogin;
    45.         }
    46.        
    47.         public function setDBuserLogin()
    48.         {
    49.             $this->_DBuserLogin = $db_const[1];
    50.         }
    51.        
    52. //------------------------- UserPass------------------------------------       
    53.         public function getDBuserPass()
    54.         {
    55.             return $this->_DBuserPass;
    56.         }
    57.        
    58.         public function setDBuserPass()
    59.         {
    60.             $this->_DBuserPass = $db_const[2];
    61.         }
    62. //------------------------- Default DB------------------------------------
    63.         public function getDBdefaultDataBase()
    64.         {
    65.             return $this->_DBdefaultDataBase;
    66.         }
    67.        
    68.         public function setDBdefaultDataBase()
    69.         {
    70.             $this->_DBdefaultDataBase = $db_const[3];
    71.         }
    72.    
    73. //-------------------------------Default table--------------------------
    74.         public function getDBdefaultTableName()
    75.         {
    76.             return $this->_DBdefaultTableName;
    77.         }
    78.        
    79.         public function setDBdefaultTableName()
    80.         {
    81.             $this->_DBdefaultTableName = $db_const[4];
    82.         }
    83. //--------------------------------------------------------------------------------
    84.  
    85.        
    86.         public function DB_connect()
    87.         {
    88.             $id = mysql_connect($this->_DBhost, $this->_DBuserLogin, $this->_DBuserPass);
    89.             if(!$id) throw new Exception("Error data base connecting");
    90.            
    91.             $this->_DBlink = $id;
    92.             return $this->_DBlink;
    93.         }
    94. //------------------------------------------------------------------------------------     
    95.  
    96. //-----------------------------------Functions & constructor--------------------------
    97.         public function __construct($field_name, $field_value)
    98.         {
    99.             setTableFields();
    100.             if(array_key_exists($field_name, $this->_tableFields))
    101.             {
    102.                 $q1 = mysql_query("SELECT * FROM $this->_tableFields['getDBDefaultTableName()'] WHERE $field_name='$field_value'");
    103.  
    104.                 while($q2 = mysql_fetch_assoc($q1))
    105.                 {
    106.                     $j = 0;
    107.                     for($i=0; $i<count($q2); $i++)
    108.                     {
    109.                         $base_values[$j][] = $q2[$i];
    110.                         $j++;
    111.                     }
    112.                 }          
    113.                  
    114.                 if(!is_null($base_values[0][0]))
    115.                     for($i=0; $i<count($base_values[0]); $i++)
    116.                         $this->_user_info[] = $base_values[0][$i];
    117.                    
    118.             }
    119.         }
    120. //--------------------------------View user information------------------------
    121.         public function view_info()
    122.         {
    123.             for($i=0; $i<count($this->_user_info); $i++)
    124.                 echo $this->_tableFields[$i]." - ".$this->_user_info[$i]."<br />";
    125.         }
    126.        
    127. //------------------------------------------------------------------------------------     
    128.         public function __get($fieldName)
    129.         {
    130.             if(!array_key_exists($fieldName, $this->_tableFields))
    131.                 throw new Exception('Invalid properties value');
    132.                
    133.             if(method_exists($this, 'get'.$fieldName))
    134.             {
    135.                 return call_user_func(array($this, 'get'.$fieldName));
    136.             }
    137.             else
    138.             {
    139.                 return $this->_tableFields[$fieldName];
    140.             }
    141.         }
    142.        
    143.         public function __set($fieldName, $fieldValue)
    144.         {
    145.             if(!array_key_exists($fieldName, $this->_tableFields))
    146.                 throw new Exception('Invalid properties value');
    147.                
    148.             if(method_exists($this, 'set'.$fieldName))
    149.             {
    150.                 return call_user_func(array($this, 'set'.$fieldName));
    151.             }
    152.             else
    153.             {
    154.                 $this->_tableFields[$fieldName] = $fieldValue;
    155.             }
    156.         }
    157.        
    158. //------------------------------------------------------------------------------------
    159.     }
    160.    
    161. ?>
    162.  
    и сценрия:
    PHP:
    1.  
    2. <?php
    3.     include 'class.DBapplication.php';
    4.    
    5.     $f_name = $_POST['fieldName'];
    6.     $f_value = $_POST['fieldValue'];
    7.    
    8.     $info = new DBapplication($f_name, $f_value);
    9.     $info->view_info();
    10. ?>
    11.  
    Помогите плиз!
     
  2. shurastik

    shurastik Активный пользователь

    С нами с:
    22 фев 2008
    Сообщения:
    285
    Симпатии:
    0
    Адрес:
    Латвия
    В конструкторе $this->setTableFields();