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

时间:2010-09-09 16:51:38

标签: php oop

我正在使用oop php制作博客。现在我试图在我的数据库中显示帖子条目。我设法从创建的字段输出数据,但没有别的。基本上我的db中的post表中有四个字段。我创作,作者,头衔和身体。使用下面的代码我只管理显示创建。有人知道我该怎么办?我是否需要为每个字段创建一个新的博客对象?!如果是这样,那似乎很奇怪。谢谢! BTW代码来自我的index.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;        
    }                                                                                                                                       

1 个答案:

答案 0 :(得分:0)

您的帖子课程是否有任何其他功能? IMO,如果确实如此,构造一个新的post对象是有意义的,这样你可以稍后在代码中调用$post->do_something()。 另一方面,如果您的post类只是从数据库中提取的信息的容器,我只会在您的blog类中创建一个包含所有字段的哈希数组的实例变量$posts 。只有真正的区别是你会$post['author']而不是$post->author 您还可以为博客对象定义函数display_all_posts()display_posts(some_range),以使代码看起来更好。