GTAOnline.net
San Andreas Multiplayer (sa:mp) => Scripting SA-MP [Pawn center] => Discussion démarrée par: BuBuNo le 16 Janvier 2010, 18:31:28
-
Bonjour a tous ;)
Alors voila j'ai un petit soucis avec MySql et tout particulierement cette fontion : samp_mysql_fetch_row
Donc enfaite quand je me logue le serveur s'éteint sa n'arrive pas a chaque fois mais des fois ^^
Je sait que ces cette fonction car j'ai utiliser un moyen de localisation assez simple :
if(!strlen(tmpp))
{
SendClientMessage(playerid, COLOR_WHITE, " USAGE: /login [password]");
printf("%s : Login [PASS]", PlayerName);
return 1;
}
printf("%s : strlen(tmpp) reussi", PlayerName);
password[13] = strval(tmpp);
if(PlayerInfo[playerid][Logged] == 1)
{
format(str, sizeof(str), " ERROR: Vous êtes déjà loguer (username: \"%s\")", PlayerName);
SendClientMessage(playerid, COLOR_RED, str);
printf("%s : Déja loguer", PlayerName);
return 1;
}
printf("%s : PlayerInfo[playerid][Logged] == 1 reussi", PlayerName);
if(!MySQLCheckUserExistance(playerid))
{
format(str, sizeof(str), " ERROR: Le compte \"%s\" n'est pas enregistrer merci d'utiliser /register!", PlayerName);
SendClientMessage(playerid, COLOR_RED, str);
printf("%s : Compte non enregistrer", PlayerName);
return 1;
}
printf("%s : MySQLCheckUserExistance(playerid)", PlayerName);
format(query, sizeof(query), "SELECT * FROM `users` WHERE `name` = '%s'", PlayerName);
printf("%s : 1", PlayerName);
samp_mysql_query(query);
printf("%s : 2", PlayerName);
samp_mysql_store_result();
printf("%s : 3", PlayerName);
samp_mysql_fetch_row(line);
printf("%s : 4", PlayerName);
Et puis apres je me logue sa coupe donc je vais voir ce que me dit le log :
[18:13:57] BuBuNo : /login en cour ...
[18:13:57] BuBuNo : GetPlayername reussi
[18:13:57] BuBuNo : GetPlayerIP reussi
[18:13:57] BuBuNo : strlen(tmpp) reussi
[18:13:57] BuBuNo : PlayerInfo[playerid][Logged] == 1 reussi
[18:13:57] BuBuNo : MySQLCheckUserExistance(playerid)
[18:13:57] BuBuNo : 1
[18:13:57] BuBuNo : 2
[18:13:57] BuBuNo : 3
et puis plus rien donc en constant que sa coupe avant le 4 j'en conclut que ces cette fonction :
printf("%s : 3", PlayerName);
samp_mysql_fetch_row(line);
printf("%s : 4", PlayerName);
Mais je n'ai pas trouver de résponse a mon probleme donc merci d'avance de votre aide ;)
-
(line) coorespond a quoi ?
-
sa ne corespond que a sa :
line[1024]
Merci d'avance
-
je pense qu'il faut revoir sa car sa ne coorespond donc a rien :s
-
Bizar car sur le site il marque la meme chose enfin le meme prinsipe : http://lostgangwarz.free.fr/samp_mysql_fr.php#samp_mysql_fetch_row (http://lostgangwarz.free.fr/samp_mysql_fr.php#samp_mysql_fetch_row)
-
Up :-[
Quelqu'un pourais m'aider :)
Merci d'avance de votre aide ;)
-
Salut,
il est aussi possible que les fonctions précédentes échouent et que ce soit ce qui cause le crash avec cette fonction
tente de faire comme ceci:
if(samp_mysql_query(Query) == 1)
{
if(samp_mysql_store_result() == 1)
{
sinon print les valeurs de retour des fonctions comme ceci:
printf("%s : query: %d", PlayerName, samp_mysql_query(query));
printf("%s : store: %d", PlayerName, samp_mysql_store_result());
printf("%s : fetch: %d", PlayerName,samp_mysql_fetch_row(line));
sinon, assure toi d'être bien connecté à ta db, et de faire les bonnes requêtes
reviens nous avec le résultat
++Sim++