Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В. PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Опять ООП :(
 
 автор: Akira   (02.11.2005 в 19:23)   письмо автору
 
 


<?
class sql_manager {
    var 
$value;
    var 
$flag false;
    var 
$dbname 'phpcom';
    var 
$dbhost 'localhost';
    var 
$dbuser 'root';
    var 
$dbpass '';
    function 
__construct(){
        
mysql_connect($this->dbhost$this->dbuser$this->dbpass); // Коннект к бд
        
mysql_select_db($this->dbname); // Выбор бд
    
}
    function 
insert($table "test"$values "test1, test2, test3"){
        
$this->sql "INSERT INTO $table  VALUES ($values)";
    }
    function 
update($table "test"$values "test1 = test, test1 = test, test1 = test"$id "1"){
        
$this->sql =  "UPDATE $table SET $values WHERE id = $id";
    }
    function 
select($table "test"$row "*" ,$limit=false$start "0"$end "0"){
        
$this->sql =  "SELECT $row FROM $table";
        
$limit $this->sql .= " LIMIT $start$end"" ;
    }
    function 
delete($table "test" $id "0"$limit=false$start "1"){
        
$this->sql =  "DELETE FROM $table WHERE id = $id ";
        
$limit $this->sql .= " LIMIT $start"" ;
    }
    function 
__destruct() {
        
$row "";
        
$result "";
        
$value "";
        
$result mysql_query($this->sql);
        global 
$value;
        if(!
$result) {
            exit(
mysql_error());
        }
        if (
$this->flag) {
            while (
$row mysql_fetch_assoc($result)) {
                
$value[] = $row;
            }
    } else {
        
$value mysql_fetch_assoc($result);
    }
    }

}
$test = new sql_manager();
$test->select("news");
$test->flag=true;
print_r ($value);
?>


$value не выводиться :( Что не так?

   
 
 автор: isset   (02.11.2005 в 19:38)   письмо автору
 
   для: Akira   (02.11.2005 в 19:23)
 


$test = new sql_manager();
$test->select("news");
$test->flag=true;
unset($test);
print_r ($value);
?> 

?

   
 
 автор: cheops   (02.11.2005 в 19:49)   письмо автору
 
   для: Akira   (02.11.2005 в 19:23)
 

$value находится внутри класса и не доступен для использования в не его - инкапсуляция. Необходимо предусмотреть медот, который бы выводил это значение в окно браузера внутри метода или возвращал в качестве значения.

   
 
 автор: Akira   (02.11.2005 в 21:47)   письмо автору
 
   для: cheops   (02.11.2005 в 19:49)
 

а как вы посоветуете организовать?

   
 
 автор: Евгений Петров   (02.11.2005 в 21:53)   письмо автору
 
   для: Akira   (02.11.2005 в 21:47)
 

Напишите в классе метод, например

function printr()
{
  print_r($value);
}


И вызывайте его:

  $test->printr();

   
 
 автор: Евгений Петров   (02.11.2005 в 21:58)   письмо автору
 
   для: Евгений Петров   (02.11.2005 в 21:53)
 

А хотя попробуйте оставить как есть и вызывать так:

print_r($test->$value); 

   
 
 автор: Akira   (02.11.2005 в 22:22)   письмо автору
 
   для: Евгений Петров   (02.11.2005 в 21:58)
 

Уже пробывал. Не помогло.

   
 
 автор: Atom   (02.11.2005 в 22:40)   письмо автору
 
   для: Akira   (02.11.2005 в 22:22)
 

А

return $value

не работает?

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования