IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

PHP & Base de données Discussion :

Système de mentor


Sujet :

PHP & Base de données

  1. #1
    Nouveau Candidat au Club
    Femme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Mai 2020
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux

    Informations forums :
    Inscription : Mai 2020
    Messages : 3
    Points : 1
    Points
    1
    Par défaut Système de mentor
    Bonjour chers tous,
    je suis entrain de faire un système d’affiliation en php et tout se passe pour le moment bien. Cependant je rencontre un souci.
    Avant l'inscription et l'insertion dans une base de données, je veux vérifier si le nouveau utilisateur est mentor ou protégé (parrain / filleul) si on veut.
    Je ne sais pas si je dois utiliser la meme table 'connecté' de ma bdd ou en créer une nouvelle.

    s'il y a un tuto sur le système de parrainage merci de le donner afin que je puisse m'inspirer du principe étant donné la similitude de mon travail.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    $connecte = Mentor;
    si $connecte est inferieur à 1 alors il est protégé on affiche message
    sinon si $connecte est egal à 1 alors il est mentor et devient membre
    voila un peu la logique mais le mentor ne doit pas avoir plus de 2 protégés.
    J'espère avoir été explicite dans mes propos.
    Merci de votre aide

  2. #2
    Modératrice
    Avatar de Celira
    Femme Profil pro
    Développeuse PHP/Java
    Inscrit en
    Avril 2007
    Messages
    8 633
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Développeuse PHP/Java
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2007
    Messages : 8 633
    Points : 16 372
    Points
    16 372
    Par défaut
    Je suppose que ta table connecté correspond aux informations d'un utilisateur.
    Un mentor peut avoir plusieurs protégés, mais un protégé n'a qu'un seul mentor ? Ajoute une colonne id_mentor dans ta table connecte et fait la pointer avec la colonne id.
    Si la colonne id_mentor est renseigné, l'utilisateur est un protégé.
    Si il existe une autre ligne dans la table qui a l'id de l'utilisateur comme id_mentor, alors c'est un mentor.

    Exemple :
    id	| nom	| id_mentor
    1	| Léo	| 
    2	| Paul	| 1
    3	| Jean	| 2
    4	| Lucie	| 1
    5	| Fiona	| 3
    6	| Anna	| 
    Dans ce cas :
    • Léo est le mentor de Paul et Lucie, et il n'est le protégé de personne.
    • Paul est le mentor de Jean et le protégé de Léo
    • Jean est le mentor de Fiona et le protégé de Paul
    • Lucie est la protégée de Léo
    • Fiona est la protégé de Jean
    • Anna n'a ni mentor ni protégé
    Modératrice PHP
    Aucun navigateur ne propose d'extension boule-de-cristal : postez votre code et vos messages d'erreurs. (Rappel : "ça ne marche pas" n'est pas un message d'erreur)
    Cherchez un peu avant poser votre question : Cours et Tutoriels PHP - FAQ PHP - PDO une soupe et au lit !.

    Affichez votre code en couleurs : [CODE=php][/CODE] (bouton # de l'éditeur) et [C=php][/C]

  3. #3
    Nouveau Candidat au Club
    Femme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Mai 2020
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux

    Informations forums :
    Inscription : Mai 2020
    Messages : 3
    Points : 1
    Points
    1
    Par défaut
    Citation Envoyé par Celira Voir le message
    Je suppose que ta table connecté correspond aux informations d'un utilisateur.
    Un mentor peut avoir plusieurs protégés, mais un protégé n'a qu'un seul mentor ? Ajoute une colonne id_mentor dans ta table connecte et fait la pointer avec la colonne id.
    Si la colonne id_mentor est renseigné, l'utilisateur est un protégé.
    Si il existe une autre ligne dans la table qui a l'id de l'utilisateur comme id_mentor, alors c'est un mentor.

    Exemple :
    id	| nom	| id_mentor
    1	| Léo	| 
    2	| Paul	| 1
    3	| Jean	| 2
    4	| Lucie	| 1
    5	| Fiona	| 3
    6	| Anna	| 
    Dans ce cas :
    • Léo est le mentor de Paul et Lucie, et il n'est le protégé de personne.
    • Paul est le mentor de Jean et le protégé de Léo
    • Jean est le mentor de Fiona et le protégé de Paul
    • Lucie est la protégée de Léo
    • Fiona est la protégé de Jean
    • Anna n'a ni mentor ni protégé
    Bonjour Celira,
    je tente le coup et je reviens pour dire si cela marche merci pour ton aide.

  4. #4
    Nouveau Candidat au Club
    Femme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Mai 2020
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux

    Informations forums :
    Inscription : Mai 2020
    Messages : 3
    Points : 1
    Points
    1
    Par défaut
    Bonjour chers tous,
    merci Celira pour ton aide cela m'a été utile mais je rencontre un problème dans ma condition avant l'enregistrement.
    Je ne sais pas si ma requête est bien faite et aussi si mes conditions sont bonnes.
    Je poste le code pour que vous compreniez mieux mon blocage, et merci d'avance pour le temps que vous me consacrer.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
     
    // Si le formulaire a été soumis
      if (isset($_POST['register']))
      {
        // Si tous les champs ont été remplis
        if (not_empty(['pseudo', 'email', 'password', 'password_confirm']))
        {
          $errors = [];
          extract($_POST);
     
          if (mb_strlen ($pseudo) < 3)
          {
            $errors[] ='Votre pseudo est trop court';
          }
     
          if (!filter_var($email, FILTER_VALIDATE_EMAIL))
          {
            $errors[] ='Votre adresse mail est invalide.';
          }
     
          if (mb_strlen ($password) < 6)
          {
            $errors[] ='Votre mot de passe est trop court. (Au moins 6 caractères.)';
          }
          else
          {
            if ($password != $password_confirm)
            {
              $errors[] ='Vos mots de passes sont différents';
            }
          }
     
          if (is_already_in_use('pseudo', $pseudo, 'users')) 
          {
            $errors[] ='Ce Pseudo est déjà utilisé. Veuillez en choisir un autre.';
          }
     
     
          // je recupère les infos dans les deux tables pour verifier le Mentor
     
          $q = $db->prepare("SELECT users.name, filleul.pseudo FROM users, filleul
                            WHERE users.name = filleul.users_name ORDER BY users_name DESC
                            LIMIT 0, 2");
          $req_filleul->execute(array($name));
          $filleul_exist = $req_filleul->rowCount();
     
          if ($filleul_exist == 0)
          {
            J'enregistre le traitement dans la bdd et envoi un message de niveau 1 (membre)
          }
          else ($filleul_exist == 1)
          {
            J'enregistre le traitement dans la bdd et envoi un message de niveau 2 (coach)
          }
          else ($filleul_exist == 2)
          {
     
            J'enregistre le traitement dans la bdd et envoi un message de niveau 3 (Mentor)
     
          }elseif ($filleul_exist  > 2) {
     
            J'enregistre le traitement dans la bdd
            Envoi de message, devenez mentor. Votre mentor a atteint sa limite.
     
          } 
     
     
     
          if (is_already_in_use('email', $email, 'users'))
          {
            $errors[] ='Cet email est déjà utilisé. Veuillez en choisir un autre.';
          }
            if (count($errors) == 0)
              {
                // Envoi de mail de validation
                $to = $email;
                $subject = WEBSITE_NAME.' - Activation de votre compte.';
                $password = bcrypt_hash_password($password);
                $token = sha1($pseudo.$email.$password);
     
                ob_start();
                include('template/email/activation.tmpl.php');
                $content = ob_get_clean();
     
                $headers = 'MIME-Version: 1.0' .'\r\n';
                $headers .= 'Content-type: text/html; charset=iso-8859-1' .'\r\n';
     
                mail($to, $subject, $content, $headers);
     
                // Envoie d'un message pour confirmer l'envoi du mail d'Activation
                set_flash("Un mail d'activation vient de vous être envoyé.", 'success');
     
                $q = $db->prepare('INSERT INTO users (name, pseudo, email, password)
                                    VALUES(:name, :pseudo, :email, :password)');
                $q->execute([
                              'name'=> $name,
                              'pseudo'=> $pseudo,
                              'email'=> $email,
                              'password'=> $password
                            ]);
     
                $q = $db->prepare('INSERT INTO filleul (pseudo, users_name)
                                                VALUES(:pseudo, :users_name)');
                $q->execute([
                            'pseudo'=> $pseudo,
                            'users_name'=> $name
                          ]);
            redirect ('index.php');
     
              }
              else {
                  save_input_data();
                }
              }
              else
              {
     
                $errors [] ='Veuillez remplir tous les champs svp.';
                save_input_data();
              }
            }
     
            else
            {
              clear_input_data();
            }
    Excusez pour la longueur du code

Discussions similaires

  1. [tables systèmes] extraction de la structure d'une base
    Par laffreuxthomas dans le forum Autres SGBD
    Réponses: 6
    Dernier message: 23/03/2006, 13h24
  2. [système] Comment ajouter un item dans le context menu de Windows ?
    Par ddmicrolog dans le forum API, COM et SDKs
    Réponses: 8
    Dernier message: 29/06/2005, 17h03
  3. [Système] Vider le Presse Papier
    Par babe dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 04/09/2002, 17h46
  4. IA avec le système de note
    Par scorpiwolf dans le forum C
    Réponses: 4
    Dernier message: 06/05/2002, 12h13

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo