从数据库添加动态内容

时间:2010-03-04 10:14:30

标签: php

我正在使用一个我并不完全熟悉的新的无名框架,我很想知道如何在这种环境中从数据库中添加动态内容。

在索引控制器中,我被迫拥有一个索引函数来回答对index.html的所有请求。如果我想从数据源动态创建第二页,如何在不必为此新页面添加控制器的情况下进行此操作?所有请求目前都由htaccess路由。没有进入代码片段,我只是在寻找关于如何处理它的逻辑。

1 个答案:

答案 0 :(得分:0)

好的,这个问题有点模糊,所以答案看起来有点模糊。

让我们举个例子来帮助想象。你有一个报纸网站,所以你提供很多文章 - 但都来自一个动态页面...

/articles.do?Article=Important-News-Item
/articles.do?Article=Cash-Strapped-Business-Goes-Into-Administration

等等。

然后你在网站上添加一些.htaccess(mod_rewrite)爱...

/Articles/Important-News-Item/
/Articles/Cash-Strapped-Business-Goes-Into-Administration/

然后将这些URI重写回articles.do页面。

因此,在您的articles.do页面中,您使用请求字符串(Article = Value)查询Article表并返回相关页面...

SELECT
   Headline,
   Content,
   Image
FROM
   Article
WHERE
   RestfulId = 'Important-News-Item'

然后将其弹出到页面上。

如果我错过了这个问题上的观点,请大声喊。

mod_rewrite示例

这是上面示例的mod_rewrite规则,它将restful URI映射回articles.do URI。

RewriteEngine on
RewriteRule ^Articles/([^/\.]+)/?$ articles.do?Article=$1 [L,NC,QSA]

解释这个的最简单方法(不是解释这个的技术方法)是:

1)第一位(^ Articles /)查找以“Articles /”开头的任何地址 2)第二位(([^ /。] +)/)表示“文章后面的”/“和之后的下一个”/“之间的任何内容,在本例中是文章的标题。

您可以通过在末尾添加更多“([^ /。] +)/”段来捕获更多参数...

RewriteEngine on
RewriteRule ^Articles/([^/\.]+)/([^/\.]+)/([^/\.]+)/?$ articles.do?Article=$1&$2=$3 [L,NC,QSA]

在此示例中,您可以转换

/Articles/Important-News-Item/My-Key/My-Value/

articles.do?Article=Important-News-Item&My-Key=My-Value