hlmod.hu

Magyar Half-Life Mód közösség!
Pontos idő: 2024.03.28. 13:52



Jelenlévő felhasználók

Jelenleg 198 felhasználó van jelen :: 1 regisztrált, 0 rejtett és 197 vendég

A legtöbb felhasználó (1565 fő) 2020.11.21. 11:26-kor tartózkodott itt.

Regisztrált felhasználók: Google [Bot] az elmúlt 5 percben aktív felhasználók alapján

Utoljára aktív
Ahhoz hogy lásd ki volt utoljára aktív, be kell jelentkezned.



Az oldal teljeskörű
használatához regisztrálj.

Regisztráció

Kereső


Új téma nyitása  Hozzászólás a témához  [ 4 hozzászólás ] 
Szerző Üzenet
 Hozzászólás témája: Sql Tábla
HozzászólásElküldve: 2018.11.20. 20:56 
Offline
Beavatott
Avatar

Csatlakozott: 2013.11.24. 19:19
Hozzászólások: 76
Megköszönt másnak: 24 alkalommal
Sziasztok

Valaki írna ennek a modnak egy táblát

Előre is köszönöm


Csatolmányok:
aa.sma [3.85 KiB]
Letöltve 147 alkalommal.
Hozzászólás jelentése
Vissza a tetejére
   
 Hozzászólás témája: Re: Sql Tábla
HozzászólásElküldve: 2018.11.20. 22:11 
Offline
Tiszteletbeli
Avatar

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:

  1. public sql_update_account(id)
  2. {  
  3.     new szQuery[2508]
  4.     new len = 0
  5.    
  6.     new c[191]
  7.     new client_name[33]
  8.     get_user_name(id, client_name, 32)
  9.    
  10.     format(c, 190, "%s", client_name)
  11.    
  12.     replace_all(c, 190, "\", "\\")
  13.     replace_all(c, 190, "'", "\'")
  14.  
  15.     len += format(szQuery[len], 2508, "UPDATE tsoh_save_system SET ")
  16.     len += format(szQuery[len], 2508-len,"Aktivitas = '%d', ", g_Aktivitas[id])
  17.     len += format(szQuery[len], 2508-len,"Soul = '%d', ", soul[id])
  18.     len += format(szQuery[len], 2508-len,"Kaszt = '%d', ", kasztokszama[id])
  19.     len += format(szQuery[len], 2508-len,"Xp = '%d', ", xp[id])
  20.     len += format(szQuery[len], 2508-len,"Level = '%d', ", level[id])
  21.     len += format(szQuery[len], 2508-len,"Kepesseg = '%d', ", kepessegszama[id])
  22.     len += format(szQuery[len], 2508-len,"Skes = '%d', ", selectedknife[id])
  23.     len += format(szQuery[len], 2508-len,"Sgyuru = '%d', ", selectedrings[id])
  24.     len += format(szQuery[len], 2508-len,"Spancel = '%d', ", selectedpants[id])
  25.    
  26.     for(new i=0; i <= 4; i++)
  27.     {
  28.         len += format(szQuery[len], 2508-len,"SkillP%d = '%d', ", i, skillpont[i][id])
  29.     }
  30.     for(new i=0; i <= 9; i++)
  31.     {
  32.         len += format(szQuery[len], 2508-len,"Ring%d = '%d', ", i, ringsnum[i][id])
  33.     }
  34.     for(new i=0; i <= 33; i++)
  35.     {
  36.         len += format(szQuery[len], 2508-len,"Pant%d = '%d', ", i, pantsnum[i][id])
  37.     }
  38.     for(new i=0; i <= 34; i++)
  39.     {
  40.         len += format(szQuery[len], 2508-len,"Knife%d = '%d', ", i, knifes[i][id])
  41.     }
  42.     len += format(szQuery[len], 2508-len,"Jatekosnev = '%s'", c)
  43.     len += format(szQuery[len], 2508-len,"WHERE Id = '%d'", g_Id[id])
  44.    
  45.     SQL_ThreadQuery(g_SqlTuple,"sql_update_account_thread", szQuery)
  46. }


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:

  1. 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. :)
  2.     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
  3.     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
  4.     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
  5.     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
  6.     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
  7.     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
  8.     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
  9.     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
  10.     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
  11.    
  12.     for(new i=0; i <= 4; i++)
  13.     {
  14.         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
  15. // 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
  16.     }
  17.     for(new i=0; i <= 9; i++)
  18.     {
  19.         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
  20. // 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
  21.     }
  22.     for(new i=0; i <= 33; i++)
  23.     {
  24.         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
  25. // 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
  26.     }
  27.     for(new i=0; i <= 34; i++)
  28.     {
  29.         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
  30. // 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
  31.     }
  32.     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]
  33.     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
  34. }


Menjünk tovább a kódban, ugyan így:

  1. 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
  2.     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
  3. }


UGORJUNK TOVÁBB:
  1. len += format(szQuery[len], 2548, "UPDATE tsoh_save_system_s SET ") // Ismét UPDATE utasítás, tudjuk a tábla nevét
  2.     len += format(szQuery[len], 2548-len,"Bolt = '%d'", ShopPost) // Tudjuk a mező nevét és hogy milyen értéket kap (%d >> INT)
  3.     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)
  4. }


Ö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)
  Népszerűség: 2.27%


Hozzászólás jelentése
Vissza a tetejére
   
 Hozzászólás témája: Re: Sql Tábla
HozzászólásElküldve: 2018.11.20. 22:21 
Offline
Őstag
Avatar

Csatlakozott: 2015.07.27. 22:56
Hozzászólások: 1367
Megköszönt másnak: 28 alkalommal
Megköszönték neki: 351 alkalommal
Csak mert volt kedvem hozzá, többet nem lesz:
  1. public plugin_cfg()
  2. {  
  3.     new szQuery[2508] // nem lesz ez kevés?
  4.     new lenMax = charsmax(szQuery)
  5.     new len = 0
  6.    
  7.  
  8.     len += formatex(szQuery[len], lenMax, "CREATE TABLE IF NOT EXISTS `tsoh_save_system`")
  9.     len += formatex(szQuery[len], lenMax-len,"(`Aktivitas` int(11) NOT NULL, ")
  10.     len += formatex(szQuery[len], lenMax-len,"`Soul` int(11) NOT NULL, ")
  11.     len += formatex(szQuery[len], lenMax-len,"`Kaszt` int(11) NOT NULL, ")
  12.     len += formatex(szQuery[len], lenMax-len,"`Xp` int(11) NOT NULL, ")
  13.     len += formatex(szQuery[len], lenMax-len,"`Level` int(11) NOT NULL, ")
  14.     len += formatex(szQuery[len], lenMax-len,"`Kepesseg` int(11) NOT NULL, ")
  15.     len += formatex(szQuery[len], lenMax-len,"`Skes` int(11) NOT NULL, ")
  16.     len += formatex(szQuery[len], lenMax-len,"`Sgyuru` int(11) NOT NULL, ")
  17.     len += formatex(szQuery[len], lenMax-len,"`Spancel` int(11) NOT NULL, ")
  18.    
  19.     for(new i=0; i <= 4; i++)
  20.     {
  21.         len += formatex(szQuery[len], lenMax-len,"`SkillP%d` int(11) NOT NULL, ", i)
  22.     }
  23.     for(new i=0; i <= 9; i++)
  24.     {
  25.         len += formatex(szQuery[len], lenMax-len,"`Ring%d` int(11) NOT NULL, ", i)
  26.     }
  27.     for(new i=0; i <= 33; i++)
  28.     {
  29.         len += formatex(szQuery[len], lenMax-len,"`Pant%d` int(11) NOT NULL, ", i)
  30.     }
  31.     for(new i=0; i <= 34; i++)
  32.     {
  33.         len += formatex(szQuery[len], lenMax-len,"`Knife%d` int(11) NOT NULL, ", i)
  34.     }
  35.     len += formatex(szQuery[len], lenMax-len,"`Jatekosnev` varchar(32) NOT NULL,")
  36.     len += formatex(szQuery[len], lenMax-len,"`Id` int(11) NOT NULL AUTO_INCREMENT PRIMARY KEY)")
  37.    
  38.     SQL_ThreadQuery(g_SqlTuple,"sql_update_account_thread", szQuery)
  39. }


Hozzászólás jelentése
Vissza a tetejére
   
 Hozzászólás témája: Re: Sql Tábla
HozzászólásElküldve: 2018.11.20. 22:31 
Offline
Tiszteletbeli
Avatar

Csatlakozott: 2012.10.09. 13:48
Hozzászólások: 1439
Megköszönték neki: 174 alkalommal
regener írta:
Csak mert volt kedvem hozzá, többet nem lesz:
  1. public plugin_cfg()
  2. {  
  3.     new szQuery[2508] // nem lesz ez kevés?
  4.     new lenMax = charsmax(szQuery)
  5.     new len = 0
  6.    
  7.  
  8.     len += formatex(szQuery[len], lenMax, "CREATE TABLE IF NOT EXISTS `tsoh_save_system`")
  9.     len += formatex(szQuery[len], lenMax-len,"(`Aktivitas` int(11) NOT NULL, ")
  10.     len += formatex(szQuery[len], lenMax-len,"`Soul` int(11) NOT NULL, ")
  11.     len += formatex(szQuery[len], lenMax-len,"`Kaszt` int(11) NOT NULL, ")
  12.     len += formatex(szQuery[len], lenMax-len,"`Xp` int(11) NOT NULL, ")
  13.     len += formatex(szQuery[len], lenMax-len,"`Level` int(11) NOT NULL, ")
  14.     len += formatex(szQuery[len], lenMax-len,"`Kepesseg` int(11) NOT NULL, ")
  15.     len += formatex(szQuery[len], lenMax-len,"`Skes` int(11) NOT NULL, ")
  16.     len += formatex(szQuery[len], lenMax-len,"`Sgyuru` int(11) NOT NULL, ")
  17.     len += formatex(szQuery[len], lenMax-len,"`Spancel` int(11) NOT NULL, ")
  18.    
  19.     for(new i=0; i <= 4; i++)
  20.     {
  21.         len += formatex(szQuery[len], lenMax-len,"`SkillP%d` int(11) NOT NULL, ", i)
  22.     }
  23.     for(new i=0; i <= 9; i++)
  24.     {
  25.         len += formatex(szQuery[len], lenMax-len,"`Ring%d` int(11) NOT NULL, ", i)
  26.     }
  27.     for(new i=0; i <= 33; i++)
  28.     {
  29.         len += formatex(szQuery[len], lenMax-len,"`Pant%d` int(11) NOT NULL, ", i)
  30.     }
  31.     for(new i=0; i <= 34; i++)
  32.     {
  33.         len += formatex(szQuery[len], lenMax-len,"`Knife%d` int(11) NOT NULL, ", i)
  34.     }
  35.     len += formatex(szQuery[len], lenMax-len,"`Jatekosnev` varchar(32) NOT NULL,")
  36.     len += formatex(szQuery[len], lenMax-len,"`Id` int(11) NOT NULL AUTO_INCREMENT PRIMARY KEY)")
  37.    
  38.     SQL_ThreadQuery(g_SqlTuple,"sql_update_account_thread", szQuery)
  39. }


Megelőztél, csak azért írtam le neki, hogy megtanulja.
De kihagytad a következő táblát és az elsődleges kulcsot, főleg ha azonosítóról van szó tessék mindig a tábla elejére írni a jövőben az átláthatóság miatt. ;)
Nem teszteltem. Nem is fogom. :)

  1. public plugin_cfg()
  2. {  
  3.     new szQuery[2048];
  4.     new lenMax = charsmax(szQuery);
  5.     new len = 0;
  6.    
  7.  
  8.     len += formatex(szQuery[len], lenMax, "CREATE TABLE IF NOT EXISTS `tsoh_save_system_s`");
  9.     len += formatex(szQuery[len], lenMax-len,"(`Server` int(11) NOT NULL, ");
  10.     len += formatex(szQuery[len], lenMax-len,"`Bolt` int(11) NOT NULL)");
  11.    
  12.     SQL_ThreadQuery(g_SqlTuple,"sql_update_account_thread", szQuery)
  13. }

_________________
Minden jót! :)


Hozzászólás jelentése
Vissza a tetejére
   
Hozzászólások megjelenítése:  Rendezés  
Új téma nyitása  Hozzászólás a témához  [ 4 hozzászólás ] 


Ki van itt

Jelenlévő fórumozók: nincs regisztrált felhasználó valamint 20 vendég


Nyithatsz új témákat ebben a fórumban.
Válaszolhatsz egy témára ebben a fórumban.
Nem szerkesztheted a hozzászólásaidat ebben a fórumban.
Nem törölheted a hozzászólásaidat ebben a fórumban.
Nem küldhetsz csatolmányokat ebben a fórumban.

Keresés:
Ugrás:  
Powered by phpBB® Forum Software © phpBB Limited
Magyar fordítás © Magyar phpBB Közösség
Portal: Kiss Portal Extension © Michael O'Toole