Szerző Téma: IsValidAccount(name[]) (MySQL)  (Megtekintve 1816 alkalommal)

IsValidAccount(name[]) (MySQL)
« Dátum: 2015. március 24. - 19:40:03 »
0 Show voters
üdv.
már majdnem kész a mysql-os klán rendszerem, de a(z) IsValidAccount(name[]) függvényem vacakol.
a rendszerben használtam a y_inline -t.
az a baj, hogy amikor elküldöm a query-t, akkor az megy, de a(z) \'inline\' funkció később tér vissza.
és alapba \'0\' a visszatérés, de akkor is, ha nem regiszrált.
ha most kiveszem akkor a pawno-nak nem tetszik: mert nincs visszatérési értéke.
szóval lefut az inline, de későn, és addigra az alap code 0-t ad vissza.
gondoltam arra, h változóval csinálom meg.
pl alapba 2: new stat=2;
és ha regisztált akkor 1 lesz az értéke.
ha meg nem akkor 0.
és majd csak egy return-al iratom mi a végén.
de ez is mindig csak 2-t adna vissza.
a jelenlegi code:
 

stock IsValidAccount(name[])
{
mysql_format(mysql,query,sizeof(query),\"SELECT * FROM Users WHERE Name=\'%e\'\",name);
inline User_CheckValid()
{
if(cache_num_rows()) return 1;
else return 0;
}
mysql_tquery_inline(mysql,query,using inline User_CheckValid,\"\");
return 0;
}

 
várom a válaszokat.
előre is kösz.
üdv.
Pawn code javítva, legközelebb figyelj oda!

Dupla hozzászólás automatikusan összefûzve. ( [time]2015. Március 24. 19:46:49[/time] )

Azért a klán rendszerhez kapcsolódik, mert a játékos mentő rendszert még nem írtam át mysql-ra. (az lesz az utolsó a rendszerek közül)
« Utoljára szerkesztve: 2015. március 24. - 20:02:54 írta ƒlaﻛh »

Nem elérhető KovaNovik

  • 1121
  • KovaNovik
    • Profil megtekintése
IsValidAccount(name[]) (MySQL)
« Válasz #1 Dátum: 2015. március 24. - 20:19:33 »
0 Show voters
(nem teszteltem, mert fent sincs a samp a gépemen)
 
stock IsValidAccount(name[]) {
new qry[64], rst, Cache:cch;
mysql_format(mysql, qry, sizeof(qry), \"SELECT * FROM Users WHERE Name=\'%e\'\", name);
cch = mysql_query(mysql, qry);
rst = cache_num_rows();
cache_delete(cch);
return (rst) ? (1) : (0);
}
« Utoljára szerkesztve: 2015. március 24. - 20:22:11 írta kovanovik »

IsValidAccount(name[]) (MySQL)
« Válasz #2 Dátum: 2015. március 25. - 14:47:29 »
0 Show voters
hát maga a logika alapján megy.
de most akkor végülis mindenhol így megcsinálhatnám, DE akkor meg a sima query miatt nem lenne néha-néha egy lag?
mert a tquery egyből lefut; ide kell a(z) y_inline
de ugyanezzel az eljárással meg lehetne oldani tquery-vel is?
mivel eddig nem használtam mysql-t, azért a mode nagy része még nem mysql-os.
én már egyből az r39-2-t tanultam meg.
na de ugyanigy akkor át kell írni a GetMembersInClan(clanid) (ami csak a tagom számát adja vissza), meg ugyanezt csak meghívottakkal?
nincs vmilyen megoldás, ami lényegében ugyanez, csak tquery?
mert a tquery egyből a callback-be adja a cache-t, VAGY NEM?
bocs ha nem lehet megérteni, csak siettem.

IsValidAccount(name[]) (MySQL)
« Válasz #3 Dátum: 2015. március 28. - 12:32:34 »
0 Show voters
akkor nem lehet tquery-vel?  :question:  :confused:

Nem elérhető ZyZu.

  • Globális moderátor
  • 8939
  • my turbo diesel forum
  • Discord: ZyZu.
    • Profil megtekintése
IsValidAccount(name[]) (MySQL)
« Válasz #4 Dátum: 2015. március 30. - 02:39:03 »
0 Show voters
Idézetet írta: scripter date=1427542354\" data-ipsquote-contentapp=\"forums\" data-ipsquote-contenttype=\"forums\" data-ipsquote-contentid=\"53448\" data-ipsquote-contentclass=\"forums_Topic
akkor nem lehet tquery-vel?  :question:  :confused:
 
de lehet.. csak akkor létre kell hozni egy külön publicot ahová beírod a kódokat, szerintem minél jobban fogod bonyolítani az egészet. :confused:
 

mysql_format( dbHandle, query, sizeof( query ), \"SELECT * FROM `accounts` WHERE `username` = \'%s\'\", name );
mysql_query( dbHandle, query );
cache_get_data( rows, fields );
if( rows ) { SendClientMessage( playerid, -1, \"{FF0000}Rendszer: {FFFFFF}Ez a felhasználónév már létezik az adatbázisunkban!\" ); }
else if( !rows ) { SendClientMessage( playerid, -1, \"{FF0000}Rendszer: {FFFFFF}Ez a felhasználónév még nem létezik az adatbázisunban!\" ); }

 
nem vagyok biztos, hogy mit szeretnél de én így oldanám meg a név ellenőrzést.

IsValidAccount(name[]) (MySQL)
« Válasz #5 Dátum: 2015. április 04. - 16:51:06 »
0 Show voters
Igen, tudom, hogy még kell tquerynél egy callback, de ha ugy megcsinálom akkor vissza megyünk a legelejére.
Épp a callback kihagyása miatt használtam a y_inline-t.
De a y_inline meg lassan fut le, és addig lefut a code végén lévő kötelező return.
:(
A te megoldásodban nem látok tqueryt, és a mysql_query előtt nincs cache mentés, majd a végén törlés.
Ez a kovanovik megoldása. Akkor tqueryvel neme lehet? Mármint lehet de ugy h ne kelljen callback.
 :unsure:

Nem elérhető KovaNovik

  • 1121
  • KovaNovik
    • Profil megtekintése
IsValidAccount(name[]) (MySQL)
« Válasz #6 Dátum: 2015. április 04. - 17:00:47 »
0 Show voters
Esetleg egy publikus valtozoval megoldhato lenne. Szerk: ja nem, mert ha csak egy kicsit is kesik a tquery, egybol nem jo.
Eddig mindenhol igy csinaltam, ahogy mar leirtam.
A y_inline-t en is nezegettem regebben, most meg is tanulom. :)
Ha jol emlekszem, volt az a_mysql.inc fajlban valamifele makro (vagy mi), ami a mysql_tquery_inline volt. Azzal esetleg?
Szerk:
igen, ez lesz az
[hs width=300 height=300]
 
    \"yMYgKA4.png?1\"
[/hs]
« Utoljára szerkesztve: 2015. április 04. - 17:13:31 írta kovanovik »

IsValidAccount(name[]) (MySQL)
« Válasz #7 Dátum: 2015. április 04. - 18:14:49 »
0 Show voters
az alap code amit kiraktam az mysql_tquery_inline :)
ne tévesszen meg a neve, az a függvény magába nem elég, azért kell a y_inline.
 :)
Mellesleg:
Ha használom a y_inline-t, akkor az amx mérete 186 kB-ról felugrik 4300+-ra. :(
« Utoljára szerkesztve: 2015. április 04. - 18:17:09 írta scripter »

Nem elérhető KovaNovik

  • 1121
  • KovaNovik
    • Profil megtekintése
IsValidAccount(name[]) (MySQL)
« Válasz #8 Dátum: 2015. április 04. - 18:17:02 »
0 Show voters
Jaaaa. Akkor nem nagyon van tobb tippem. Csak a szokasos: biztosan jol hasznalod? (gondolom igen)

IsValidAccount(name[]) (MySQL)
« Válasz #9 Dátum: 2015. április 04. - 18:18:12 »
0 Show voters
Igen :)
Le is teszteltem print-el.
Minden lefut, nem az code-al van baj. Csak az a baj h késik az inline :(

Dupla hozzászólás automatikusan összefûzve. ( 2015. április 04. - 18:23:16 )

Na de akkor mind1, :)
Legfeljebb lesz a mode-ba egy két sima query. :)
Am meg köszönöm a segítséget (az általad kirakott code-ot).  :smokin:
Akkor mivel aki tudná a megoldást, gondolom leírta volna, ezért zárom a témát.
Ha mégis van még egy-két ötlet, akkor irjatok pm-be :D
« Utoljára szerkesztve: 2015. április 04. - 18:23:16 írta scripter »

 

SimplePortal 2.3.7 © 2008-2024, SimplePortal