Audrey

Base de donnée

9 messages dans ce sujet

Salut, je code en local, et j'ai le plugin mysql R41-4, et la base de donnée de fonctionne pas avec mon serveur, la base de donnée ne prend pas en compte le joueur connecté.

 

#define db_host "127.0.0.1" 
#define db_user "" 
#define db_pass ""
#define db_db "projet"

 

Création d'un compte:

 

CreateAccount(playerid, password[])
{
	new name[MAX_PLAYER_NAME], ip[255], query[255], message[255];
	GetPlayerName(playerid, name, sizeof(name)); // On récupère le pseudo du joueur
	GetPlayerIp(playerid, ip, sizeof(ip)); // On récupère l'ip du joueur

	format(query, sizeof(query), "INSERT INTO `stats`(`pseudo`, `motdepasse`, `ip`) VALUES ('%s', '%s', '%s')", name, password, ip);
	mysql_query(MySql, query, false); // False = Pas de retour / true = Renvoie
	format(message, sizeof(message), "Vous venez d'enregistrer votre compte sur le serveur Infanterie Rôle-Play !\nVotre mot de passe est: %s", password);
	SendClientMessage(playerid, -1, message);

}

 

Ensuite si un compte existe

 

LoginAccount(playerid, password[])
{
	new name[MAX_PLAYER_NAME], query[255], row_count;
	GetPlayerName(playerid, name, sizeof(name));

	format(query, sizeof(query), "SELECT * FROM `stats` WHERE pseudo='%s' and motdepasse='%s'", name, password);
	new Cache:result = mysql_query(MySql, query);
	cache_get_row_count(row_count);
	cache_delete(result);
	if (row_count)
	{
		PlayerInfo[playerid][logged] = 1;
		SendClientMessage(playerid, -1, "{0AD100}Vous êtes à présent connecté sur le serveur: Infanterie Rôle-Play !");
		return 1;
	}
	else
	{
		return 0;
	}
}

 

AsAccount(playerid)
{
	new name[MAX_PLAYER_NAME], query[128], row_count;
    GetPlayerName(playerid, name, sizeof(name));

    format(query, sizeof(query), "SELECT * FROM `stats` WHERE pseudo='%s'", name);
    new Cache:result = mysql_query(MySql, query);
 	cache_get_row_count(row_count);
 	cache_delete(result);
 	if (row_count)
	{
		return 1;
	}
	else
	{
		return 0;
	}
}

 

Mon soucis c'est pourquoi rien ne se passe sur ma base de donnée alors que le code semble fonctionner...

Partager ce message


Lien à poster
Partager sur d’autres sites

user met root déja

apres hmm

Partager ce message


Lien à poster
Partager sur d’autres sites

je ne suis pas sur que la version sql correspond au code de ton gm

Partager ce message


Lien à poster
Partager sur d’autres sites
Il y a 22 heures, vitespirite a dit :

je ne suis pas sur que la version sql correspond au code de ton gm

 

D'accord, et comment savoir que ce n'est pas la bonne version par rapport à mon code ?

Partager ce message


Lien à poster
Partager sur d’autres sites

Au niveaux des formatage de tes requête mysql personnellement j'utilise la fonction mysql_format et la plus pars des gens utilise le %e au lieu du %s pour désigner une chaîne de caractère dans les requête sql, après moi je privilégie au max mysql_tquery pour l’exécution de mais requête mais j'utilise également le inline, tes fonction mysql coinside a la r5 dans c'est eau là. Après je ne suis pas un expert vue que j'ai commencer le sql a la r39 et je n'est pas étudier les nouveauté depuis tout se temps.

Partager ce message


Lien à poster
Partager sur d’autres sites

Salut je te conseille de faire ton mysql sur MiamiRP   C'est un très bon gamemode, avec des mappings parfait, et un script meilleur que les SARP. ;)

 

 

 

 

Partager ce message


Lien à poster
Partager sur d’autres sites

Vérifie tout d'abord si la connexion à ta base de donnée est bonne.

Pour cela insert une ligne dans une de tes tables manuellement (avec phpmyadmin par exemple), ensuite tu fais un SELECT dans ton script.

Si il a récupéré une valeur c'est déjà un bon début.

 

(Je te conseille de renommer ta fonction AsAccount par IsPlayerRegistered ou un truc plus compréhensible :p)

Partager ce message


Lien à poster
Partager sur d’autres sites

Bonsoir,

 

Cela peut toujours servir même si le sujet date un peu.

 

Le plugin MySQL log ses erreurs dans logs/plugins/mysql.log pour la dernière version. Un coups d'oeil dans ce fichier permet de détermienr d'où vient l'erreur :)

 

A+

Partager ce message


Lien à poster
Partager sur d’autres sites

Premièrement mets cela si tu restes en localhost, tu ne peux pas la laisser vide.

 

#define db_user "root" 

 

Ensuite, dans ton script tu as une connexion à la BDD ? Dans ton OnFilterScriptInit ou OnGameModeInit 

 

PS: Hash les mots de passe de tes joueurs !!!!!!!! 

Modifié par Toretto

Partager ce message


Lien à poster
Partager sur d’autres sites

Créer un compte ou se connecter pour commenter

Vous devez être membre afin de pouvoir déposer un commentaire

Créer un compte

Créez un compte sur notre communauté. C’est facile !


Créer un nouveau compte

Se connecter

Vous avez déjà un compte ? Connectez-vous ici.


Connectez-vous maintenant