2

我试图弄清楚如何查询数据库并在多个页面上以 oop 输出结果。

这些页面将具有不同的查询和查询数量,有些将具有相似的布局,而另一些则完全不同。

这是为每个页面设置包含所需 sql 字段以及可能用于输出数据的 html 的类的正确方向吗?或者一个更有经验的 oop 设计师会做不同的事情吗?

例如(为可怕的伪代码道歉):

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);

代码的重点是得到这个程序代码的 oop 等价物:

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>....;
}
4

1 回答 1

1

我会看一下 Zend Paginator 组件。您可以下载并单独安装。您可以使用 Zend_Paginator_Null_Adapter 或数据库之一,并帮助它为您生成页码。您需要做的就是确保您的界面正在更改页码和结果数。

http://framework.zend.com/manual/2.0/en/modules/zend.paginator.usage.html

于 2013-03-04T06:21:16.483 回答