Offline |
|
|
Csatlakozott: 2012.10.09. 13:48 Hozzászólások: 1439
Megköszönték neki: 174 alkalommal
|
sZmolka írta: Sziasztok
Valaki írna ennek a modnak egy táblát
Előre is köszönöm Tábla. Minden információt tudsz a kódból: a tábla nevét, sorok nevét, adatok típusait. Itt van például ez a függvény: public sql_update_account(id) { new szQuery[2508] new len = 0 new c[191] new client_name[33] get_user_name(id, client_name, 32) format(c, 190, "%s", client_name) replace_all(c, 190, "\", "\\") replace_all(c, 190, "'", "\'") len += format(szQuery[len], 2508, "UPDATE tsoh_save_system SET ") len += format(szQuery[len], 2508-len,"Aktivitas = '%d', ", g_Aktivitas[id]) len += format(szQuery[len], 2508-len,"Soul = '%d', ", soul[id]) len += format(szQuery[len], 2508-len,"Kaszt = '%d', ", kasztokszama[id]) len += format(szQuery[len], 2508-len,"Xp = '%d', ", xp[id]) len += format(szQuery[len], 2508-len,"Level = '%d', ", level[id]) len += format(szQuery[len], 2508-len,"Kepesseg = '%d', ", kepessegszama[id]) len += format(szQuery[len], 2508-len,"Skes = '%d', ", selectedknife[id]) len += format(szQuery[len], 2508-len,"Sgyuru = '%d', ", selectedrings[id]) len += format(szQuery[len], 2508-len,"Spancel = '%d', ", selectedpants[id]) for(new i=0; i <= 4; i++) { len += format(szQuery[len], 2508-len,"SkillP%d = '%d', ", i, skillpont[i][id]) } for(new i=0; i <= 9; i++) { len += format(szQuery[len], 2508-len,"Ring%d = '%d', ", i, ringsnum[i][id]) } for(new i=0; i <= 33; i++) { len += format(szQuery[len], 2508-len,"Pant%d = '%d', ", i, pantsnum[i][id]) } for(new i=0; i <= 34; i++) { len += format(szQuery[len], 2508-len,"Knife%d = '%d', ", i, knifes[i][id]) } len += format(szQuery[len], 2508-len,"Jatekosnev = '%s'", c) len += format(szQuery[len], 2508-len,"WHERE Id = '%d'", g_Id[id]) SQL_ThreadQuery(g_SqlTuple,"sql_update_account_thread", szQuery) }
Az utasításokkal fogunk most foglalkozni. SQL-ben az UPDATE a következőket várja: Kód: UPDATE Table SET Column1 = Param1, Column2 = Param2 WHERE Column3 = Param3 // Azaz UPDATE - Utasítás, mit csináljon: frissítse a Table - Table nevű SQL táblában szereplő (és itt felsorolást indíthatunk, vesszővel elválasztva) Column1 = Param1 - Column1 nevű mezőt Param1 értékkel, majd Column2 = Param2 - Column2 nevű mezőt Param2 értékkel, WHERE - ott, ahol Column3 = Param3 - Column3 mező értéke megegyezik Param3-mal
Tehát, mi mit tudunk a fenti függvényből: len += format(szQuery[len], 2508, "UPDATE tsoh_save_system SET ") // Utasítás, azaz frissítse a táblában szereplő mezőket. Tudjuk a tábla nevét. :) len += format(szQuery[len], 2508-len,"Aktivitas = '%d', ", g_Aktivitas[id]) // Mező neve, ami %d, azaz integer értéket kap, emiatt az SQL mező típusa INT, hossza ismeretlen len += format(szQuery[len], 2508-len,"Soul = '%d', ", soul[id]) // Mező neve, ami %d, azaz integer értéket kap, emiatt az SQL mező típusa INT, hossza ismeretlen len += format(szQuery[len], 2508-len,"Kaszt = '%d', ", kasztokszama[id]) // Mező neve, ami %d, azaz integer értéket kap, emiatt az SQL mező típusa INT, hossza ismeretlen len += format(szQuery[len], 2508-len,"Xp = '%d', ", xp[id]) // Mező neve, ami %d, azaz integer értéket kap, emiatt az SQL mező típusa INT, hossza ismeretlen len += format(szQuery[len], 2508-len,"Level = '%d', ", level[id]) // Mező neve, ami %d, azaz integer értéket kap, emiatt az SQL mező típusa INT, hossza ismeretlen len += format(szQuery[len], 2508-len,"Kepesseg = '%d', ", kepessegszama[id]) // Mező neve, ami %d, azaz integer értéket kap, emiatt az SQL mező típusa INT, hossza ismeretlen len += format(szQuery[len], 2508-len,"Skes = '%d', ", selectedknife[id]) // Mező neve, ami %d, azaz integer értéket kap, emiatt az SQL mező típusa INT, hossza ismeretlen len += format(szQuery[len], 2508-len,"Sgyuru = '%d', ", selectedrings[id]) // Mező neve, ami %d, azaz integer értéket kap, emiatt az SQL mező típusa INT, hossza ismeretlen len += format(szQuery[len], 2508-len,"Spancel = '%d', ", selectedpants[id]) // Mező neve, ami %d, azaz integer értéket kap, emiatt az SQL mező típusa INT, hossza ismeretlen for(new i=0; i <= 4; i++) { len += format(szQuery[len], 2508-len,"SkillP%d = '%d', ", i, skillpont[i][id]) // Mező neve, ami %d, azaz integer értéket kap, emiatt az SQL mező típusa INT, hossza ismeretlen // Mivel a mező nevébe egy INT változó van iktatva, emiatt annyi mezőt kell létrehoznod, ahány indexet kap a mező. Jelen esetben 0,1,2,3,4 } for(new i=0; i <= 9; i++) { len += format(szQuery[len], 2508-len,"Ring%d = '%d', ", i, ringsnum[i][id]) // Mező neve, ami %d, azaz integer értéket kap, emiatt az SQL mező típusa INT, hossza ismeretlen // Mivel a mező nevébe egy INT változó van iktatva, emiatt annyi mezőt kell létrehoznod, ahány indexet kap a mező. Jelen esetben 0,1,2,3,4,5,6,7,8,9 } for(new i=0; i <= 33; i++) { len += format(szQuery[len], 2508-len,"Pant%d = '%d', ", i, pantsnum[i][id]) // Mező neve, ami %d, azaz integer értéket kap, emiatt az SQL mező típusa INT, hossza ismeretlen // Mivel a mező nevébe egy változó van iktatva, emiatt annyi mezőt kell létrehoznod, ahány indexet kap a mező. Jelen esetben 0-33 } for(new i=0; i <= 34; i++) { len += format(szQuery[len], 2508-len,"Knife%d = '%d', ", i, knifes[i][id]) // Mező neve, ami %d, azaz integer értéket kap, emiatt az SQL mező típusa INT, hossza ismeretlen // Mivel a mező nevébe egy változó van iktatva, emiatt annyi mezőt kell létrehoznod, ahány indexet kap a mező. Jelen esetben 0-34 } len += format(szQuery[len], 2508-len,"Jatekosnev = '%s'", c) // Mező neve, ami %s, azaz string értéket kap, emiatt az SQL mező típusa Varchar, hossza az AMXMODX-ben felvehető maximum játékosnév hossza, [64] len += format(szQuery[len], 2508-len,"WHERE Id = '%d'", g_Id[id]) // Mező neve, ami %d, azaz integer értéket kap, emiatt az SQL mező típusa INT. Mivel Id, azonosító, ezért ez AUTO_INCREMENT és elsődleges }
Menjünk tovább a kódban, ugyan így: len += format(szQuery[len], 2048, "SELECT * FROM tsoh_save_system_s ") // Utasítás, kiválasztja a mező értékét a táblából, tehát tudjuk a tábla nevét ismét len += format(szQuery[len], 2048-len,"WHERE Server = '%d'", SERVER_ID) // Ahol a mező értéke %d. Azaz, tudjuk a mező értékét és hogy integer értéket kap, azaz az SQL mező típusa INT, hossza ismeretlen }
UGORJUNK TOVÁBB: len += format(szQuery[len], 2548, "UPDATE tsoh_save_system_s SET ") // Ismét UPDATE utasítás, tudjuk a tábla nevét len += format(szQuery[len], 2548-len,"Bolt = '%d'", ShopPost) // Tudjuk a mező nevét és hogy milyen értéket kap (%d >> INT) len += format(szQuery[len], 2548-len,"WHERE Server = '%d'", SERVER_ID) // Ahol ismét tudjuk a tábla nevét és hogy milyen értéket kap (%d >> INT) }
Összegezve, mit tudunk: Tábla: tsoh_save_system: Id(INT) Aktivitas(INT Soul(INT) Kaszt(INT) Xp(INT) Level(INT) Kepesseg(INT) Skes(INT) Sgyuru(INT) Spancel(INT) SkillP0(INT) [...] SkillP4(INT) Ring0(INT) [...] Ring9(INT) [...] Ring33(INT) Knife0(INT) [...] Knife34(INT) Jatekosnev(Varchar, 64) tsoh_save_system_s: Server(INT) Bolt(INT) A létrehozáshoz használhatod a PHPMyAdmin felületet is, vagy írsz egy olyan függvényt, ami regisztrálja a táblákat. Ne felejtsd el ciklusba foglalni létrehozáskor az alábbi mezőket: Kód: SkillP%d(INT) Ring%d(INT) Pant%d(INT) Knife%d(INT)
_________________ Minden jót! :)
Ők köszönték meg BeepBeep nek ezt a hozzászólást: FonoK (2018.11.27. 10:29) |
|
|