2013-01-24 68 views
2

我想弄清楚如何查詢數據庫並在多個頁面上輸出結果。頁面類指導

頁面將有不同的查詢和查詢數量,有些頁面會有類似的佈局,而其他頁面會完全不同。

這是正確的方向去爲每個頁面擁有所需的sql字段和可能的輸出數據的html的類?或者更有經驗的設計師會以不同的方式做到這一點?

如(道歉可怕的僞代碼):

abstract class Page(){} 

class SearchPage extends Page() 
{ 
    private $sql; 
    function output(){}; 
} 

class ProfilePage extends Page() 
{ 
    private $sql; 
    private $sql2; 
    function output(){}; ← dynamic method that can output both sql and sql2?? 
} 

class DatebaseFetch() 
{ 
    __construct($sql) 
    { 
     $this->$sql=$sql; 
    } 

    function results() 
    { 
     ...get db results...; 
     return $results;} 
    } 
} 

class PageFactory() 
{ 
    function getPage($page) 
    { 
     return new $page.Page(); 
    } 
} 

$page=PageFactory::getPage($_SERVER['PHP_SELF']); 
$query=$page->sql; 
$db=new DatabaseFetch($query); 
$results=$db->results(); 
$page->output($results); 

代碼的整點是讓接力相當於這個程序代碼:

Search Page: 
$db=new PDO("mysql:host=localhost;dbname=test;","test","test"); 
$db->query("select search items from table"); 
while($row=$db->fetch(PDO::FETCH_ASSOC)){ 
    echo <html>....; 
} 

Profile Page: 
$db=new PDO("mysql:host=localhost;dbname=test;","test","test"); 
$db->query("select profile items from table"); 
while($row=$db->fetch(PDO::FETCH_ASSOC)){ 
    echo <html>....; 
} 
+0

是否合適?我認爲這裏沒有「適當」的定義來決定。選擇1)可維護的方法,2)富有成效的方法。 –

+0

我試圖解決的是這個問題是好還是壞設計的。例如,它是否會與SOLID的原則相沖突? – mrmryb

+0

你可能想看看MVC模式。它具有明顯的關注點分離,我認爲這是最合適的哲學(對我自己而言)......這都是主觀的 – danronmoon

回答