) 我有一个问题:
我有一个包含以下信息的数据库: 报告名称[姓名] 链接到报告[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
答案 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行为的字符串定义为常量。我只是以这种方式展示它,因为通常的做法是设置全局定义的值,这些值不需要在运行时离子以这种方式改变。