2012-05-27 41 views
0

我下面的一本書:「PHP和MongoDB Web開發」顯示MongoDB的累計結果與PHP

在這裏,他們創造了一個dbconnection.php腳本:

<?php 

class DBConnection 
{ 
    const HOST = 'localhost'; 
    const PORT = 27017; 
    const DBNAME = 'myblogsite'; 

    private static $instance; 

    public $connection;  
    public $database; 

    private function __construct() 
    { 
     $connectionString = sprintf('mongodb://%s:%d', DBConnection::HOST, DBConnection::PORT); 

     try { 

      $this->connection = new Mongo($connectionString); 
      $this->database = $this->connection->selectDB(DBConnection::DBNAME); 

     } catch (MongoConnectionException $e) { 
      throw $e; 
     } 
    } 

    static public function instantiate() 
    { 
     if (!isset(self::$instance)) { 
      $class = __CLASS__; 
      self::$instance = new $class; 
     } 

     return self::$instance; 
    } 

    public function getCollection($name) 
    { 
     return $this->database->selectCollection($name); 
    } 
} 

我想使用這個腳本通過一個名爲blogs.php文件列表博客文章:

<?php 

require_once('dbconnection.php'); 

class Blogs 
{ 
    const COLLECTION = 'articles'; 

    private $_mongo; 
    private $_collection; 
    private $_blogs; 

    public function __construct() 
    { 
     $this->_mongo = DBConnection::instantiate(); 
     $this->_collection = $this->_mongo->getCollection(Blogs::COLLECTION); 
    } 


} 

$blogs = new Blogs(); 


?> 
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> 
    <head> 
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/> 
    <link rel="stylesheet" href="style.css" /> 
    <title>My Blog Site</title> 
    </head> 

      <body> 
       <div id="contentarea"> 
        <div id="innercontentarea"> 
         <h1>My Blogs</h1> 

         <?php while ($blogs->hasNext()): 
         $article = $blogs->getNext(); ?> 
         <h2><?php echo $article['title']; ?></h2> 
         <p><?php echo substr($article['content'], 0, 200).'...'; ?></p> 
         <a href="blog.php?id=<?php echo $article['_id']; ?>">Read more</a> 
         <?php endwhile; ?> 
        </div> 
       </div> 
      </body> 
</html> 

我不確定如何從這裏着手。

回答

1

您有一個對博客收藏的引用;下一步是查詢它:

public function __construct() 
{ 
    $this->_mongo = DBConnection::instantiate(); 
    $this->_collection = $this->_mongo->getCollection(Blogs::COLLECTION); 
    $this->_blogs = $this->_collection->find(); 
} 

這會給你一個參考結果集,你可以迭代和獲取單個博客文檔。你將不得不弄清楚你想如何讓這些文章可以訪問您的PHP/HTML。

(正在使用此視覺參考http://devzone.zend.com/1730/getting-started-with-mongodb-and-php/