如何使用phpMyAdmin和PHP将提交的表单数据与特定页面连接?

时间:2014-01-08 08:00:00

标签: php mysql database forms phpmyadmin

我的客户想要在她网站的每个页面上都有一个评论框。问题是,该网站已被创建为静态html网站。我过去使用php和phpMyAdmin制作了评论框,显然我会将她的每个页面改为.php而不是.html所以它会支持我的评论框的php代码,但我只创建了评论之前单页的方框。我现在正在改变的网站至少有10页需要评论框,将来会增加更多。

我喜欢为网站上提交的所有评论使用单一数据库表的想法(不会有很高的数量)。我只是不确定如何告诉提交的评论它应该显示在哪个页面上。

我认为我需要做的是让提交的评论存储它在数据库中的页面,然后我可以在每个页面上找到一个函数,查找具有该特定页面名称或ID的所有评论。我只是不确定如何做第一部分,我发送的数据用标识页面的其余部分来识别页面,有人能指出我正确的方向吗?

很抱歉,如果这是一个愚蠢的问题,我还是非常擅长PHP,谢谢!!

2 个答案:

答案 0 :(得分:1)

你的想法是正确的。有多种方法可以做到这一点,但一个简单的解决方案是在数据库表中有一个页面名称字段。收集数据库插入的信息时,通过在注释表单中放入一个隐藏字段来检索页面,可能是......

<input type="hidden" name="page_name" value="<?=$_SERVER['REQUEST_URI']?>" />

然后从数据库中获取注释时,执行像

这样的数据库查询
"SELECT * FROM `comments` WHERE `page_name` = '".$_SERVER['REQUEST_URI']."'";

始终记得在插入数据库之前清理用户信息!

答案 1 :(得分:0)

您需要的是一个带有列的表格,用于标识您需要的页面。例如:

表:评论

---------------------------------
id | page | comment | createdAt |
---------------------------------
1  |   1  |  Com1   | 2014-01-01 00:00:00|
2  |   2  |  Com2   | 2014-01-01 00:00:22|
3  |   1  |  Com3   | 2014-01-01 00:30:00|
4  |   1  |  Com4   | 2014-01-01 00:35:00|

然后在特定页面使用where子句中的列页面,仅选择该页面中的注释。

例如:

SELECT comment, createdAt FROM comments WHERE page  = '1' ORDER BY createdAt DESC

ORDER BY将重新排列最新的订单。

发布到数据库时,也插入页面标识符。

INSERT INTO comments (page, comment, createdAt) VALUES ('1','this is a comment', NOW())

得到它?