如何将从单个表单获取的用户数据保存到一个MySQL数据库中的各种表中?

时间:2010-08-05 17:53:41

标签: php mysql

通过MySQL和PHP实现以下概念的正确方法是什么?假设一个网站有两个小组/社区,这两个小组/社区都允许其用户提出问题,回答问题,并开始与相应社区相关的讨论。用户将通过下面的代码(main.php)选择他/她希望输入的社区:

<h2><a href="http://www.domain.com/groupA.php">Group A</a></h2>

<h2><a href="http://www.domain.com/groupB.php">Group B</a></h2>

用户点击发言 B组后,他/她当然会被定向到groupB.php,在那里他/她将能够查看与相关的数据> B组社区(问题,用户发布的讨论等)。当然,人们也可以为 Group A 社区做同样的事情。

现在我的问题是:我如何在MySQL中有效地做到这一点?截至目前,如果用户想要在位于groupB.php Group B 中创建讨论/问题,则将其定向到表单(discussion.php)。下面的小代码:

<form action='savedisc.php' method='post'>

上述表单将在两个社区中提供,即groupA.phpgroupB.php。因此,当然,savedisc.php会将表单的内容保存到数据库中。含义discussion.phpsavedisc.php有助于保存 groupA.phpgroupB.php的内容。部分savedisc.php位于以下位置:

$sql="INSERT INTO GroupA (Message, Title, Type)
VALUES
('$message','$title','$represents')";

其中GroupA是表的名称。表名将根据用户可能正在与之交互的组进行相应的更改。因此,对于B组,上述代码看起来相同,但GroupA将替换为GroupB。我怎样才能在savedisc.php中执行此操作?我是否必须为各组使用大量IF语句?

鉴于上述步骤,这甚至可能吗? discussion.php可以位于所有社区页面上吗?因为那时,savedisc.php的工作是将组A,B,C,D的内容保存在同一数据库中各自的表中,但保存在相应组的表中。我甚至走在正确的轨道上吗?

谢谢。

2 个答案:

答案 0 :(得分:1)

您需要花一些时间研究关系数据库;但是,这是一个快速的高级答案。

您想要一些表:用户,群组,群组,问题,答案。

用户(身份证,用户名,群组*) - 只是一个想法而不是必需的 组(id,name) groupmems(id,groupid,userid) 问题(id,Title,Message,Userid,groupid,date) 答案(id,questionid,title,message,userid,date)

您所做的是通过自动递增主键的存在使这些表彼此相关。如果您选择让用户登录,那么您将需要用户和组表以获得更大的灵活性。如果您选择不这样做,那么当用户想要发布新问题或答案时,您将使用PHP POST方法将组ID的值发送到表单,该表单将绑定到隐藏文本字段。

答案 1 :(得分:1)

这很容易 应该只有一个包含group字段的表。 所以,你必须只有一个集 - 一个表单,一个脚本,一个表。只使用查询字符串和隐藏的输入字段传递组标识符