我有一个用PHP和mysqli构建的网站,现在我正在为这个网站建立管理面板。我在查询和显示推荐数据时面临一些困难,我不知道该怎么做。
我有一个名为user_registration的表,字段包括,user_name,email,password,referrer。每当任何注册会员推荐其他会员时,推荐人用户名将保存在"推荐人"。
现在我想要的只是获取有推荐的成员(我的注册会员提到的意思)的行,并且还想要计算一个成员有多少推荐并回应它。
例如:我有20个注册会员,其中5个会员有一些推荐,所以我想查询并回复那些有推荐的会员用户名,并计算他们有多少推荐:
Member's Username Total Referrals user7 8 user6 6 user1 5 user9 3 user5 2
答案 0 :(得分:0)
我只是简单地提出一个可以帮助您完成项目的想法 -
假设您的网站网址为http://yoursite.com
。
1)每当用户注册时,您都可以为该用户生成随机密钥并将其保存在该特定用户的数据库中。例如user1 => abc123
2)现在,您可以告诉您的用户(可能在他们成功注册后的页面上)他/她的推荐人ID为http://yoursite.com/?ref_id=abc123
(通过将其作为新参数附加)
或者您的注册页面是http://yoursite.com/register
,然后是http://yoursite.com/register/?ref_id=abc123
3)现在,他们可以将这个链接分享给他们的朋友,同事等任何他们想要的人。
4)现在,假设一个人(可能是他的朋友,用户1所指的)点击了上述链接。他将使用附加的参数'ref_id'登陆您的网站。
5)只需使用$ _REQUEST ['ref_id']或$ _GET ['ref_id'],捕获其值并将其存储在SESSION变量中。您可以在网站的主页上执行此操作,例如的index.php
6)现在,如果该用户进行了注册,您可以在数据库中创建一个条目,该条目由具有引用者标识abc123
的用户(即user1)引用一次。
7)因此,您可以为user1添加count = 1
。如果更多人为'ref_id'参数提供相同的值,则可以继续增加计数。
8)如果用户登陆您的网站时没有此类参数,那么这意味着他没有被任何人推荐。所以,这意味着他是第一种用户,即点数用户。 1)。
9)您可能还需要在此处的某些地方处理一些验证部分。
编辑:
SELECT user_name, referrer FROM user_registration WHERE referrer > 0;
假设您已准备好正确的插入查询,并在显示问题中的表格时为您提供结果。
答案 1 :(得分:0)
我的解决方案是。在用户表中创建一个新列,例如“totalreferrals”。通过这种方式,您可以轻松跟踪他们推荐的人数。你也可以制作一张新表“推荐”。在这里,您将保存推荐名称,新人名称和时间戳等。现在甚至可以对不同时期进行查询。
我认为您需要重新考虑数据库设置,而不是试图让位于复杂的查询,以使数据库正常工作。