好的方法来显示db数据的oop php方式?

问题描述:

我正在制作一个博客在oop php。现在我试图显示我的数据库中的帖子条目。我设法从创建的字段输出数据,但没有别的。基本上我在我的数据库中的帖子表中有四个字段。我已创建,作者,标题和正文。通过下面的代码,我只能管理显示创建。任何人都知道我应该如何继续?!我是否需要为每个字段创建一个新的博客对象?如果是这样,这似乎很奇怪。谢谢! BTW的代码是从我的index.php ...好的方法来显示db数据的oop php方式?

<?php 
require_once('_settings.config.php'); 
      global $db; 
      $blog = new Blog("My Blog"); 
      $posts = $blog->getPosts(); ?> 

       <?php foreach ($posts as $post): ?> 
       <li> 
       <?php echo "<div>"; ?> 
        <?php echo "<span class='footer'>Posted by: " . $post->author . "Created: " . $post->created . "</span>"; ?> 
        <?php echo "</div>"; ?> 
       <?php endforeach; ?> 

这里根据要求是我的getPosts函数。它返回$ posts数组。

public function getPosts() { 
     $result = $this->db->query("SELECT * FROM posts"); 
     $posts = array(); 
     while($post = $result->fetch_assoc()) { 
      array_push($posts, new BlogPost($post['id'], $post['created'], $post['author'], $post['title'], $post['body']));  
     }  
     return $posts;   
    }                                  
+0

如果你的'get_posts()'函数会返回一个对象,它会工作。你能为我们提供这个功能的代码吗? – 2ndkauboy 2010-09-09 17:02:53

+0

遵循这将有助于你http://code.tutsplus.com/tutorials/real-world-oop-with-php-and-mysql-net-1918 – nifCody 2015-02-23 07:17:58

您的发布课程是否有其他功能?国际海事组织,如果是这样,建立一个新的后对象是有道理的,这样你可以在代码中稍后调用$post->do_something()。另一方面,如果您的post类只是您从数据库中提取的信息的容器,那么我只需在您的博客类中创建一个实例变量$posts,其中包含所有字段的散列数组。只有真正的区别是,你将有$post['author'],而不是$post->author 你也可以定义一个函数display_all_posts()display_posts(some_range)为您的博客对象,使您的代码看起来更好。

+0

在我的博客BlogPost类我有构造函数和getters以及数据库中字段的设置器。然后在我的blogclass中,我有getPosts函数来执行查询并创建包含数据库中字段的BlogPost对象。这就像我到现在一样。 – Tim 2010-09-09 18:52:04