MySQL 3 problиmes -
Scol-Ben - 21.07.2013
Bonjour, voilа durant mon dernier sujet postй j'en-recrйer un nouveau pour dire que le sujet soit bien pris en compte.
Voici mes problиmes :
1) J'ai crйer un tableau d'йnumйration qui contient Email.
Code:
enum pInfo
{
pEmail[64],
pAdmin,
pScore,
pArgent
}
new PlayerInfo[MAX_PLAYERS][pInfo];
Dans ma table j'ai йgalement crйй une colonne avec Email sous le type de varchar(50).
Lorsque l'utilisateur entre dans un dialogid son email elle devrait automatiquement l'йcrire dans la variable PlayerInfo[playerid][pEmail] et ensuite кtre sauvegardй dans le bdd. J'ai alors placй un printf qui doit montrer l'email dans la console mais lorsque visionne la console je voit simplement des genre de symboles exemple *, $, ¤ а chaque fois que la variable et rйinitialiser puis contient une chaоne de caractиres elle change tout seul de symbole йtrange.
Code:
if(response == 1)
{
PlayerInfo[playerid][pEmail] = strlen(inputtext);
SaveCompte(playerid);
printf("%s", PlayerInfo[playerid][pEmail]);
return 1;
}
Les 2 prochains ne sont pas vraiment des problиmes mais plutфt une difficultй que je n'arrive pas а faire.
2) Voilа je n'arrive pas du tout а faire en sorte que si le compte existe sa lui demande de se connecter ou l'inverse, je sais qu'il faut SELECT le nom d'utilisateur et dire si existe ou non mais je vois pas comment.
Aprиs c'est pareille avec le mot de passe. Si vous auriez un tutoriel dйjа tout fait sur ce problиme je vous en serait reconnaissant.
3) Celui je sais pas le faire, j'aimerais que dans le texte que le joueur entre il doit obligatoirement y avoir un '@', '.fr', '.com' etc... les .fr, .com etc... 1 seul serait obligatoire voilа en tout cas j'espиre que vous avez compris mon problиme et que vous m'aideriez.
Merci d'avance а vous, je suis disponible via skype.
Cordialement, Scol-Ben.
Re : MySQL 3 problиmes -
Dark_Rider29 - 21.07.2013
1) strmid(PlayerInfo[playerid][pEmail], inputtext, 0, strlen(inputtext), 50);
2) La flиme dйsolй je suis occupй
3) strfind
Re : MySQL 3 problиmes -
Scol-Ben - 21.07.2013
Quote:
Originally Posted by Dark_Rider29
1) strmid(PlayerInfo[playerid][pEmail], inputtext, 0, strlen(inputtext), 50);
2) La flиme dйsolй je suis occupй
3) strfind
|
Voilа donc je vient d'appliquer pour mon problиme 1 et la variable PlayerInfo[playerid][pEmail] contient bien l'email, par contre dans la BDD l'email n'y est pas et reste case vide.
Voici ma callback SaveCompte :
Code:
public SaveCompte(playerid)
{
if(IsPlayerConnected(playerid))
{
new query[128];
format(query, sizeof(query), "UPDATE `scol_comptes` SET `Email` = '%s', `Admin` = '%d', `Score` = '%d', `Argent` = '%d' WHERE JoueurNom = '%s'",
PlayerInfo[playerid][pEmail],
PlayerInfo[playerid][pAdmin],
PlayerInfo[playerid][pScore],
PlayerInfo[playerid][pArgent],
NomPlayer(playerid));
mysql_query(query);
return 0;
}
return 1;
}
Voilа merci d'avance.
Pour les 2 autres problиme je vais essayer de me dйbrouiller en attendant une nouvelle rйponse.
Merci encore.
Re : MySQL 3 problиmes -
Scol-Ben - 21.07.2013
Problиme 3 rйsolu merci, Dark_Rider29.
Par contre il y a deux arguments que je comprend pas dans le strfind, c'est le true et le != -1, une personne pourrait m'expliquer а quoi sert c'est deux arguments ?
Merci а vous.
Re: MySQL 3 problиmes -
Mathieu371 - 22.07.2013
Pour le problиme 2 tu dois sйlectionner les infos souhaitйes, ensuite tu vйrifies que des colonnes ont йtй trouvйes, si oui compte existant, si non inexistant.
Re : MySQL 3 problиmes -
vLib - 22.07.2013
Quand le joueur se connecte tu check si son compte existe avec une requкte SQL,
Tu retournes 1 ou 0 (Si sa trouve ou non), si 1 => Il se connecte ; 2 => Il fais sa crйation de compte,
je ne vois pas la rйel difficultй que tu as ? :O
C'est la requкte SQL que tu n'arrives pas a faire ?
Re : MySQL 3 problиmes -
Scol-Ben - 22.07.2013
Quote:
Originally Posted by vLib
Quand le joueur se connecte tu check si son compte existe avec une requкte SQL,
Tu retournes 1 ou 0 (Si sa trouve ou non), si 1 => Il se connecte ; 2 => Il fais sa crйation de compte,
je ne vois pas la rйel difficultй que tu as ? :O
C'est la requкte SQL que tu n'arrives pas a faire ?
|
Oui je sais faire mais c'est la requкte SQL, puis je sais pas si je doit utiliser une fonctionne pour le faire.
J'ai essayй sa mais sa fonctionne pas.
Code:
forward CompteExisteMySQL(playerid);
Dans OnPlayerConnect
Code:
CompteExisteMySQL(playerid);
Code:
CompteExisteMySQL(compte[])
{
new query[128];
format(query, sizeof(query), "SELECT * FROM `scol_comptes` WHERE JoueurNom = '%s'", NomPlayer(playerid));
mysql_query(query);
mysql_store_result();
new nomJoueur = mysql_num_rows();
printf("[MYSQL] %s", nomJoueur);
mysql_free_result();
return nomJoueur;
}
Pour vous dire un systиme d'enregistrement de compte j'en est fait que 2 en total depuis ma connaissance en pawn.
Voilа j'en suis sыr que j'ai ratй, pour cela que pour le MDP je vais le rater aussi mais j'ai pas l'idйe pour le MDP et celui-ci.
Re : MySQL 3 problиmes -
Mathieu371 - 22.07.2013
On va faire quelque chose de basique, nйcйssitant plusieurs requкtes pour loguer le joueur totalement: Tu sйlйctionnes la colonne ayant pour valeur l'ID du compte joueur, tu vйrifie le nombre de rйsultats (grвce а mysql_num_rows(), visiblement tu ne sais pas rйellement te servir de MySQL, je te conseille de regarder la page de celui ci sur le Wiki, si mysql_num_rows() retourne 0: 0 rйsultats > compte inexistant, 1: 1 rйsultat -> TaVariablePourL'IDJoueur = mysql_fetch_int();, si > 1, alors il y a plusieurs comptes au nom indiquй, ce qui ne devrait normalement pas кtre le cas mais n'est pas а exclure.
Je n'ai peut кtre pas йtй assez clair, dans ce cas, je dйtaillerai un peu plus. (Sinon, je suis aussi disponible via Skype: envoie un PM si besoin)
Re : MySQL 3 problиmes -
Scol-Ben - 22.07.2013
Oui je ne sais utiliser MySQL mais j'essai d'apprendre, je sais que mysql_num_rows() sert а stocker le rйsultat je me sert toujours de Wiki mais anglais je suis nul.
Enfaоte mon problиme si je peut dire comme sa c'est le code pawn que j'ai pas l'idйe pour sa, en tout cas ton aide skype m'apprendra, il me suffit d'une seul fois et je retient.
Je n'est pas ton skype, en attendant une rйponse j'essai de continuer avec mon problиme 2.
Re : MySQL 3 problиmes -
Mathieu371 - 22.07.2013
Quote:
Originally Posted by Scol-Ben
je sais que mysql_num_rows() sert а stocker le rйsultat.
|
Je t'ai justement dit dans le message prйcйdent, que mysql_num_rows() te retourne le nombre de rйsultats et non le rйsultat en lui mкme ^^
Concernant mon Skype, je te l'envoie en PM (comme dit plus-haut)