incaout
348Messages postés
8 septembre 2008Date d'inscription
5 février 2011Dernière intervention
13 sept. 2009 à 18:10
Salut.
Je ne sais pas quelle base de données tu utilises, je vais donc parler en SQL en général et mysql qd nécessaire, mais je ne suis pas encore très familier de mysql
Donc, sur la base que le nouvel inscrit renseigne un formulaire et précise le pseudo de son parrain, dans ton script PHP, tu récupères les informations du formulaire à l'aide du tableau $_POST. Dans ce tableau, tu as les noms des champs de tes formulaires comme clé et les valeurs des champs comme valeur.
Tu peux donc commencer par créer un compte pour ce nouvel abonné
Récupéres déjà les variables du tableau $_POST. Idéalement tu controles s'il sont renseignés, sauf si tu as déjà mis un controle avant l'envoi du formulaire, ce qui est mieux à mon sens. Néanmoins tu peux toujours t'assurer que les champs sont remplis au cas où ton script serait appelé indépendamment afin d'éviter des manimpulations inutiles. Enfin il existe plusieurs possiilités de gérer cela.
//A faire pour tous les champs que tu dois traiter
if(isset($_POST['nom'])
{
$nom = $_POST['nom'];
}
else
{
//Gestion de l'erreur
}
$rqNewInscrit = "INSERT INTO Membres (Nom, prenom,.....) VALUES ('$nom',$prenom',....);";
//Connexion à la base (je suppose que tu as une fonction qui se charge de la connexion à la base et qui renvoie l'identifiant de connexion.
$cnx = ConnectBase();
if ($cnx==0)
{
//Gere l'erreur
}
//Execute la requete
$res = mysql_query($rqNewInscrit, $cnx);
if(!$res)
{
//Gere erreur --> die; (quitte le script)
}
//libère les ressources
mysql_free_result($res);
//Tu récupères ensuite l'id de ce nouveau compte car tu en auras besoin pour l'associer au parrain
//Je ne sais pas comment tu généres les clés primaires de tes tables. Cette fonction marche pour les clés auto incrémentées, mais présente des risques dans la mesure où elle retourne le n° du dernier enregistrement inséré. On ne peut donc pas être sur à 100 % que c le bon. L'autre solution peut être de conserver en mémoire le pseudo s'il est unique dans toute la base, d'enregistrer les informations, puis de lancer une requete pour rechercher l'id de ce compte avec comme critère de recherche le pseudo.
$idNewInscrit = mysql_insert_id($cnx);
ou
$Pseudo = $_POST['Pseudo'];
$rqIdInscrit = "SELECT IdMembre FROM Membre WHERE Pseudo = '$Pseudo';";
$res = mysql_query($rqIdInscrit, $cnx);
if(!$res)
{
//Gere erreur --> die; (quitte le script)
}
$rep = mysql_fetch_row($res);
$idNewInscrit = $rep[0];
//libère les ressources
mysql_free_result($res);
Tu peux maintenant rechercher l'id du compte du parrain
$Parrain = $_POST['Parrain'];
$rqIdParrain = "SELECT IdMembre FROM Membre WHERE Pseudo = '$Parrain';";
$res = mysql_query($rqIdParrain, $cnx);
if(!$res)
{
//Gere erreur --> die; (quitte le script)
}
$rep = mysql_fetch_row($res);
$idParrain = $rep[0];
//libère les ressources
mysql_free_result($res);
Et maintenant inscrire l'id du parrain et du filleul dans la table Parrainage
$rqParrainage = "INSERT INTO Parrainage (Filleul, Parrain) VALUES ($idNewInscrit, $idParrain);";
//Execute la requete
$res = mysql_query($rqParrainage, $cnx);
if(!$res)
{
//Gere erreur --> die; (quitte le script)
}
//libère les ressources
mysql_free_result($res);
Voilà en gros un script qui devrait marcher. Je ne garanti pas qu'il n'y ait pas des erreurs de saisie. Bien sur il faut mettre toutes ces instructions dans un fichier PHP commençant <?php et finissant par ?>
Si tu as d'autres questions à ta disposition.
Cdlt,
IC