Php 创建允许成员注册其他成员的web应用程序

Php 创建允许成员注册其他成员的web应用程序,php,mysql,Php,Mysql,我手头很紧,我签约创建了一个PHP web应用程序,允许一个人注册,然后用户可以再注册5个其他用户,他注册的其他用户也可以每人注册5个成员 我希望创建数据库以将用户保存为在数组中注册的特定成员,从而以表格形式列出他们 令人困惑的是 如何计算出数据库结构,以便它可以保存这五个用户,然后在查询时将它们列出,我不知道该将它们保存在数组中还是单独的表中。但我更喜欢在数组中保存 任何其他用户通过5个注册用户中的任何一个注册,都将链接到主裁判,所有用户都将被计数,整个过程将停止,因为用户注册了5个成员,5个

我手头很紧,我签约创建了一个PHP web应用程序,允许一个人注册,然后用户可以再注册5个其他用户,他注册的其他用户也可以每人注册5个成员

我希望创建数据库以将用户保存为在数组中注册的特定成员,从而以表格形式列出他们

令人困惑的是

如何计算出数据库结构,以便它可以保存这五个用户,然后在查询时将它们列出,我不知道该将它们保存在数组中还是单独的表中。但我更喜欢在数组中保存 任何其他用户通过5个注册用户中的任何一个注册,都将链接到主裁判,所有用户都将被计数,整个过程将停止,因为用户注册了5个成员,5个成员也向其帐户注册了5个用户,每个帐户总共25个用户 它可以被解释为

1. Parent - 5 children - 
然后这5个孩子各生5个孩子,父母会承认他的孩子和孙子孙女,一旦孩子和孙子孙女达到25个,父母的生殖周期结束,他的孩子也可以继续使他们的25个

我已经建立了数据库,但我需要一些准则来成功地建立它,因为我有3天的时间来完成这部分

public function userTable()
{
    $qry = "CREATE TABLE IF NOT EXISTS users(
    user_id         INT(8) NOT NULL AUTO_INCREMENT, 
    username        VARCHAR(35) NOT NULL,
    password        VARCHAR(35) NOT NULL,
    referralIDs             varchar(500) NOT NULL,
    totalRefers        VARCHAR(35) NOT NULL ,
    userIDhash          varchar(30) not null,
    date                date,
    time                varchar(20) not null,
    PRIMARY KEY (user_id)
    )TYPE=INNODB";
$result = $this->qry($qry);
    return;
}

    public function ReferralTable()
{
    $qry = "CREATE TABLE IF NOT EXISTS Refers(
    user_id         INT(50) NOT NULL, 
    usersRegistered        VARCHAR(500) NOT NULL,
    referby             int(50) not null
    )TYPE=INNODB";
$result = $this->qry($qry);
    return;
}
我更愿意只使用一个表,将我的孩子保存在由分隔的数组中,然后我可以从那里开始 我很困惑如何保存它,如何一个接一个地检索孩子的ID,我可以用它来查询孙子孙女


希望我不会让任何人困惑??提前感谢

为什么需要使用阵列? 这是一个简单的一对多关系。。。只需创建一个包含此关系的表,或在用户表中创建一个字段

下面是两个表格示例的一个示例

用户表

id | email | name | whatever
1    a@b.c   jon
2    j@b.c   mel
用户注册

register_id | registree_id
    1             null
    2              1
SELECT COUNT(*) FROM user WHERE ref_user_id = 1
一个表的示例

id | email | name | whatever | ref_user_id
1     a@b.c   jon                NULL
2     j@b.c   mel                  1
3     f@b.c   al                   1
您可以获得1注册的所有用户:

SELECT * FROM user WHERE ref_user_id = 1
或者获取1注册的人数

register_id | registree_id
    1             null
    2              1
SELECT COUNT(*) FROM user WHERE ref_user_id = 1

在这两种情况下,id为1的用户先注册后未被引用,他注册了用户2

您希望我们做什么?完成你的工作?教你数据库设计?告诉您如何将数组元素连接到逗号分隔的字符串?感谢您的深入了解,但在本例中,任何其他总共注册了2个5的用户都应该与用户1链接,那么当我查询用户1时,用户2总共应该有105个his+5,在这种情况下,他现在应该注册了5个用户,2 3 4 5 6,2=5,3=5,4=5,5=5,6=5,那么用户1的帐户总共有25个,如果您能帮我整理一下,我将不胜感激。我强烈建议您现在不要担心优化问题,只需运行6个查询。否则,您可以这样做:SELECT*FROM user WHERE ref\U user\U id=SELECT id FROM user WHERE ref\U user\U id=null这将获取所有第一代子代。除此之外,因为SQL在显示树结构方面存在问题,这正是您想要的,我建议您阅读SQL中的二叉树,您可以从google获得很多示例。