复杂算法

Complex algorithm

我绞尽脑汁但还是卡住了..但我相信这是可能的,因为那里有专家。有这个附属网站。 如果一个用户是第一个在应用程序上注册的用户,他将不会在任何人之下,但接下来注册的六个用户将在第一个用户之下,当超过六个时,第七个用户将不会在任何人之下,任何其他六个用户注册将在第七个用户下,依此类推.. 我创建了两个 tables,用户 table 和 table 来跟踪用户下的用户..

 if(isset($_POST['submit'])) {
    $name = $_POST['name'];
    $email = $_POST['email'];
    $password = $_POST['password'];
    $pre = $db->prepare("SELECT * FROM affi");
     $pre->execute();
    $fetch = $pre->fetchAll();
    // print_r($fetch);die;
    if(count($fetch) < 1) {
        //checking if this is the first user 
        $create_user = $db->prepare("INSERT INTO users (name, email, password )
        VALUES('$name', '$email', '$password')");
        $stmt = $create_user->execute();
        if($stmt)  {
            $refer = $db->prepare("INSERT INTO refer_customer (email)
            VALUES('$email')");
            $stmt = $refer->execute();
            header("Location: Index.php");
        }
    } else if(count($fetch) <= 7) {
        //trying to attach other six users that would register under the first one
        $get_user = $db->prepare("SELECT FIRST(id) from users ");
         $get_user->execute();
         $result = $create_user->fetch(PDO::FETCH_OBJ);
        if($result) {
        $create_user = $db->prepare("INSERT INTO users (name, email, password )
        VALUES('$name', '$email', '$password')");
        $stmt = $create_user->execute();
        if($stmt)  {
            $refer = $db->prepare("INSERT INTO refer_customer (refere_id ,email)
            VALUES('$result->id','$email')");
            $stmt = $refer->execute();
            header("Location: Index.php");
        }
    }  
    
    }
}

卡住了,甚至不知道这将如何结束,因为如果您明白我的意思,将会有无限的用户。请提供任何帮助,我们将不胜感激

这听起来是个很简单的问题。

  1. 您可以在用户注册时给他们编号:用户 1、2、3 等。最好的方法是在数据库中使用 an auto-increment index。我们称此列为 userId.

  2. 接下来是一个小技巧:你可以在PHP中使用modulo operator,像这样:$position = $userId % 7;这将return之间的数字0 和 6。$position == 0 用于接下来 6 个用户的领导者。

就是这样。 MySQL 还有 the modulo operator.