Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В. MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

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

 

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

вид форума:
Линейный форум (новые сообщения вниз) Структурный форум

тема: Как передать сумму кол-ва рядов в ООП?

Сообщения:  [1-4] 

 
 автор: cheops   (15.09.2011 в 19:46)   письмо автору
 
   для: hejioshin   (15.09.2011 в 12:42)
 

Тут будут просто вызовы методов
<?php  class Sum extends Model 
  function 
print_sum() { 
    
retrun $this->return_sum();
  } 
?>
В echo нужно тоже подставить вызов метода, если это вывод внутри класса, то
<?php echo $this->return_sum(); ?>
Если дело происходит вне класса, то вместо $this будет название объекта.

  Ответить  
 
 автор: hejioshin   (15.09.2011 в 12:42)   письмо автору
 
   для: cheops   (15.09.2011 в 12:29)
 

Спасибо. А что мне тогда выводить в контроллере?

<?php  class Sum extends Model {
                         function 
print_sum() {

                    ???

                        }
                   } 
?>


Что подставлять под echo?

<?php echo $?; ?>

  Ответить  
 
 автор: cheops   (15.09.2011 в 12:29)   письмо автору
 
   для: hejioshin   (15.09.2011 в 12:08)
 

Непонятно, несколько вещей:
1) Что возвращает метод sql()? Дескриптор результирующей таблицы?
2) Если ответ на предыдущий вопрос положительный, зачем метод return_sum() возвращает дескриптор вместо того, чтобы вернуть то, что от него требуется - количество строк?
<?php
class Model extends Db 
        function 
return_sum() { 
            
$sql "SELECT COUNT(*) FROM table" 
            
$result $this->sql($sql) ; 
            return 
mysql_result($result); 
            } 
        }
?>
Кроме того, если уж создаете обертку для mysql-функций, делайте это до конца, чтобы пользователю вашего класса не пришлось делать двойную работу вместо одной: изучать и mysql и ваши функции. Когда вводятся обертки, делается так, чтобы логика оборачиваемых функций вообще не участвовала в логике обертки. Это конечно, может привести к потери производительности, поэтому пусть sql() останется, однако, лучше ввести еще sql_result(), sql_row(), которые бы возвращали одно значение и массив. Тогда бы ваш метод сразу бы возвращал число
<?php
class Model extends Db 
        function 
return_sum() { 
            
$sql "SELECT COUNT(*) FROM table" 
            return 
$this->sql_result($sql) ; 
            } 
        }
?>

PS ООП, он не для того, чтобы кода и работы было больше, он создавался для обратных целей.

  Ответить  
 
 автор: hejioshin   (15.09.2011 в 12:08)   письмо автору
 
 

Привет. В процедурном я делал так:

$sql = mysql_query("SELECT COUNT(*) FROM table",$db); 
$result = mysql_fetch_array($sql);
$sum = $result[0];
echo $sum;


Сейчас делаю посредством ООП и не получается. В модели запрос:

class Model extends Db {
        function return_sum() {
            $sql = "SELECT COUNT(*) FROM table" ;
            $result = $this->sql($sql) ;
            return $result ;
            }
        }


в контроллере хочу вывести переменную:

class Controller extends Model {
        function print_sum() {
            $result = $this->return_sum() ; 
            $page = mysql_fetch_array($result) ;
            $sum = $page[0];
            return $sum;
        }
    }


Что надо добавить в контроллер, чтобы в видах вывести:

echo $sum;


Заранее спасибо.

  Ответить  

Сообщения:  [1-4] 

Форум разработан IT-студией SoftTime
Rambler's Top100
вверх

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