【问题标题】:How can I connect submitted form data with specific page using phpMyAdmin and PHP?如何使用 phpMyAdmin 和 PHP 将提交的表单数据与特定页面连接起来?
【发布时间】:2014-01-08 08:00:00
【问题描述】:

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

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

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

对不起,如果这是一个愚蠢的问题,我还是 PHP 新手,谢谢!!

【问题讨论】:

  • 请添加代码或尝试让您的想法发挥作用。这是 SO 规则中规定的最低要求。
  • 请注意 MySQL 是数据库,而不是 PHPMyAdmin:后者只是 MySQL 数据库的 PHP 脚本客户端程序,以供将来参考。

标签: php mysql database forms phpmyadmin


【解决方案1】:

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

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

然后在从数据库中获取 cmets 时执行 db 查询,例如

"SELECT * FROM `comments` WHERE `page_name` = '".$_SERVER['REQUEST_URI']."'";

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

【讨论】:

  • 谢谢,我想这正是我需要的!
【解决方案2】:

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

表格:评论

---------------------------------
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 子句中的列页面仅选择该页面中的 cmets。

例如:

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())

明白了吗?

【讨论】:

    猜你喜欢
    • 2017-10-14
    • 2015-06-25
    • 1970-01-01
    • 1970-01-01
    • 2016-03-21
    • 1970-01-01
    • 2021-03-01
    • 1970-01-01
    • 2020-10-28
    相关资源
    最近更新 更多