你對這個開發使用codeigniter嗎?以下答案基於來自codeigniter的Web應用程序框架。所以這裏去,
的問題是,我想[root]->fruits->tropical->bananas
頁面 是隻能訪問此網址: http://localhost/cms/fruits/tropical/bananas/
。
那麼在你的控制器中創建一個函數名爲fruits和兩個參數?例如
class Cms extends CI_Controller {
...
...
...
public function __construct() {
$this->load->model('cms_model');
}
public function fruits($tropical, $bananas) {
$string = $this->cms_model->getPage($tropical, $bananas);
// load the view you want.
$this->load->view('');
}
...
...
...
}
我想出了到現在爲止是CMS表有一個指向它的父父場 。問題是:如何解析uri地址 並儘可能選擇儘可能少的查詢從DB中選擇一行?
Table cms:
Id
Slug
ParentId
Table cms_parent:
Id
讓我們從上面所示,CMS表和cms父表的兩個示例表描述。你沒有在你的問題中指定你的查詢想要的結果還是查詢結果的返回結果。所以下面是我的猜測基於你的問題描述,即通過使用公共密鑰連接它們來查詢兩個表,然後應用條件。
// select * from cms t1 join cms_parent t2 on t1.ParentId = t2.Id where t1.Id = '' and t2.ParentId = 'level1';
public function getPage($level0, $level1) {
$this->db->select('*');
$this->db->from('cms');
$this->db->join('cms_parent', 'cms.ParentId = cms_parent.Id');
$this->db->where('cms.Id', $level0);
$this->db->where('cms.ParentId', $level1);
$query = $this->db->get();
// return one row from database.
return $query->row();
}
http://mikehillyer.com/articles/managing-hierarchical-data-in-mysql/ – 2012-03-07 22:29:26
http://stackoverflow.com/questions/4048151/what-are-the-options-for-storing-hierarchical-數據在關係數據庫 – frail 2012-03-14 12:23:25