使用postgresql和php构建链接

时间:2013-11-18 16:37:04

标签: php arrays postgresql

) 我有一个问题:

我有一个包含以下信息的数据库: 报告名称[姓名] 链接到报告[link]

各种报告显示在我页面的表格中(使用带有静态,月,周等的db_tables)

但我想基于“链接”和“名称”生成报告链接

所以我设置了一个pgsql查询:

result = select name, link from db where type = 'week'

这很好用。

要显示以上内容我有:

echo "<div id=\"selMaand\">" ;
    echo "<table id = \"t2\">\n ";
    echo "\t<tr class=\"head\">\n";
    echo "<th colspan=\"2\">Select Maand</th>";
        while ($line = pg_fetch_array($result5, null, PGSQL_ASSOC)) {
    echo "\t<tr>\n";
    foreach ($line as $col_value) {
        echo "\t\t<td width=\"100%\">$col_value</td>\n";
    }
    echo "\t</tr>\n";
}
    echo "</table>\n";
    echo "</div>";

可以正常使用。

现在,来自数据库的链接是http://192.168.178.1:8080/etc/etc/page.html"onclick humptydumpty&gt; name 每次我想调整onlclick或地址中的内容时,我都要更改所有链接。

我可以在我的查询中插入什么,以便我能够构建类似的链接

echo "<a href = "http://192.168.178.1:8080/etc/etc/**$link**"onlclick humptydumpyu>**$name**</a>

我无法弄清楚如何分解我的阵列!

提前致谢

Sjoerd

1 个答案:

答案 0 :(得分:2)

如果您只需要数据库中URL的一部分(即每个记录中只有一部分会更改),则只将该部分URL存储在数据库中。然后,您可以在代码中生成URL的剩余部分(称为URL基础)。

这样的事情:

define('URL_BASE', 'http://some.url.base/that/you/can/change/globally/');

然后从数据库中获取每个项目的剩余URL。所以你在查询循环中会有这样的东西来构建完整的URL。

$link = $line['link'];
$final_url = URL_BASE . $link;

就onclick的东西而言,我也会单独设置,因为我假设onclick行为不依赖于单个链接(如果你可以为它创建一个单独的DB列)。

define('LINK_ONCLICK', 'onclick="some_onclick_function()"');

在您的查询循环中,您可以将它们放在一起:

$name = $line['name'];
$link = $line['link'];
$final_url = URL_BASE . $link;
echo '<a href="' . $final_url . '" ' . LINK_ONCLICK . '>' . $name . '</a>';

请注意,没有必要将url base和onclick行为的字符串定义为常量。我只是以这种方式展示它,因为通常的做法是设置全局定义的值,这些值不需要在运行时离子以这种方式改变。