通过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.php
和groupB.php
。因此,当然,savedisc.php
会将表单的内容保存到数据库中。含义discussion.php
和savedisc.php
有助于保存 groupA.php
和groupB.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的内容保存在同一数据库中各自的表中,但保存在相应组的表中。我甚至走在正确的轨道上吗?
谢谢。
答案 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
字段的表。
所以,你必须只有一个集 - 一个表单,一个脚本,一个表。只使用查询字符串和隐藏的输入字段传递组标识符