2014-02-27 208 views
0

我刚刚进入了OOP,我正在尽一切努力以正确的方式做所有事情。在类和数据库函数之间传递变量

我有2种方法RetrieveFromDatabaseDisplay RetrieveFromDatabase访问的产品ID,它基本上运行,我在我的抽象类写了PDO声明一个参数的产品类(不知道这是因为PDO已经正确一些功能已经)。它使用此ID来获取产品详细信息。

Display这个功能的想法是渲染产品的细节。在这个例子中,我只有1个html,但我打算增加更多,因为我不知道如何将它们中的每一个传递给一个div,这在功能上并不正常(通常我在(<div> <?php echo $name; ?> </div>)之前听说过OOP。

Class Product { 

    public $name; 
    public $price; 
    public $length; 
    public $description; 
    public $type; 
    private $results; 
    private $database_connection 

    private function __construct(Database $database_connection) { 
     // database connection 
     $this->database = dbconnect(); 
    } 

    public function RetrieveFromDatabase($id) { 
     $sql->database_connection->query('select Name, price, length, description FROM product WHERE id = :id'); 
     $sql->database_connection->bind(':id', $id); 
     $sql->database_connection->execute(); 

     return $this->results !== false; 
     //Retrieve the product details from database. 
    } 

    public function Display() { 
    //display the product information 
     while(($row = mysql_fetch_row($this->results))) 
     print_r($row); 
    echo <p> $this->database_connection->price </p>; 
    } 

    $Product = New Product(); 
} 

我的问题

我怎么能写在适当的方式上面的代码,而不必包含在类文件中的任何HTML?还请纠正我,如果我做任何愚蠢的错误。

+1

要求纠正愚蠢的错误只是在浪费Stack Overflow的巨大力量 - 不是吗?至少你可以让DB api使用**一致**。 –

+0

这个“堆栈溢出的巨大力量”究竟是在说什么,如果不教人们如何不做“愚蠢的错误”? – brezanac

+0

@holodoc因为这是他们的父母和小学老师的责任。 –

回答

2

避免尝试OOP一段时间。

事实上,你做的一切都是错误的,而且方式不正确。

更不用说你仍然对你正在使用的API有相当模糊的想法。因此,更好地坚持以前的良好程序风格,直到您掌握PHP基础知识并从各种来源学习一些OOP。

更新。不要试图创建自己的班级,而要从现成的班级中学习。把自己的框架,这是所有学习开发人员已经倾向于,并将通过示例教你适当的面向对象方法。 Yii和Laravel看起来最有前途的。

+0

-1我几乎从不使用downvotes。在这种情况下,对于我的态度和“愚蠢的”答案,这是一个明显的例外。 – brezanac

+1

我尊重你的意见,但对我来说,这是可以给予的mose有用答案。要学到一个必须在某个层面上的东西,必须有一些知识来掌握新的东西。没有它,这将只是浪费时间 –

+0

谢谢。 “各种来源”将是很好的请给我一个很好的来源。因为很多消息来源都不如你想像的那么好。 – user3057514