Szerző Téma: SQL lekérdezés dialogba (2)  (Megtekintve 853 alkalommal)

SQL lekérdezés dialogba (2)
« Dátum: 2016. június 10. - 11:10:18 »
0 Show voters
Hellósztok!
Annó volt egy témám ( https://sampforum.hu/index.php?topic=64985.msg572342#msg572342 ) amiben SQL lekérdezést kellet volna dialogba bele passzírozni. A témában kaptam egy linket, hogy itt ez a probléma meg van oldva, az alapján elkezdtem megírni a  sajátomat, de nem jött össze.
Akinek van valami ötlete és leírja nekem annak nagyon szépen megköszönném!

Nem elérhető 1Mark6

  • 437
    • Profil megtekintése
SQL lekérdezés dialogba (2)
« Válasz #1 Dátum: 2016. június 10. - 12:10:35 »
0 Show voters
CMD:admins(playerid)
{
format(query,sizeof(query),\"SELECT * FROM admins\");
mysql_tquery(SQL,query,\"AdminListaQuery\",\"i\",playerid);
return 1;
}
forward AdminListaQuery(playerid);
public AdminListaQuery(playerid)
{
new sorok = cache_get_row_count();
new dialog[512];
for(int i = 0; i < sorok; i++)
{
new nev[24],string[128];
cache_get_field_content(i,\"Nev\",nev,SQL);
format(string,sizeof(string),\"%s\\n\",nev);
strcat(dialog,string);
}
ShowPlayerDialog(playerid,DIALOG_ADMINLISTA,DIALOG_STYLE_LIST,\"Admin Lista\",dialog,\"Ok\",\"Bezár\");
}

 
Gondolom valahogy így képzelted el, a lényeg, hogy kikéred az összes adatot az admins táblából, majd egy ciklussal végigfutol az összes soron, kikéred a Nev mező értékét a \"nev\" változóba( jelent esetbe ), majd belerakod a dialog stringbe, a ciklus után pedig megmutatod a dialogot

SQL lekérdezés dialogba (2)
« Válasz #2 Dátum: 2016. június 10. - 12:39:02 »
0 Show voters
Ühmm.. Értem, és az úgy megoldható-e, hogy kiválasztok valakit és előhoz egy másik dialogot (pl Adminszint váltás).

Nem elérhető 1Mark6

  • 437
    • Profil megtekintése
SQL lekérdezés dialogba (2)
« Válasz #3 Dátum: 2016. június 10. - 14:52:38 »
0 Show voters
if(dialogid == DIALOG_ADMINLIST)
{
if(response)
{
SetPVarString(playerid,\"Szemely\",inputtext);
ShowPlayerDialog(playerid,DIALOG_ADMINKEZELES,DIALOG_STYLE_LIST,\"Admin kezelése\",\"Admin szint változtatás\\n\",\"Ok\",\"Bezár\");
}
}
if(dialogid == DIALOG_ADMINKEZELES)
{
if(response)
{
ShowPlayerDialog(playerid,DIALOG_ADMINSZERK1,DIALOG_STYLE_INPUT,\"Admin szint változtatás\",\"Írd be a mezőbe, a szintet amennyire szeretnéd megváltoztatni !\",\"Ok\",\"Bezár\");
}
}
if(dialogid == DIALOG_ADMINSZERK1)
{
if(response)
{
if(IsNumeric(inputtext))
{
   new nev[24];
   GetPVarString(playerid,\"Szemely\",nev,sizeof(nev));
   format(query,sizeof(query),\"UPDATE admins SET Admin = %d WHERE Nev = \'%s\'\",strval(inputtext),nev);
   mysql_tquery(SQL,query);
}
else SCM(playerid,-1,\"Ez nem szám !\");
}
}

SQL lekérdezés dialogba (2)
« Válasz #4 Dátum: 2016. június 10. - 23:03:42 »
0 Show voters
Nagyon szépen köszönöm! Már csak egy kérdésem maradt. Lehet e statikus részt bele vinni (pl Admin adás) azaz ez egy statikus rész a dialog végén.

Nem elérhető 1Mark6

  • 437
    • Profil megtekintése
SQL lekérdezés dialogba (2)
« Válasz #5 Dátum: 2016. június 11. - 08:59:47 »
0 Show voters
A képzeleted szab csak határokat, a dialogba bármit beleirhatsz, admin adás, elvétel, stb.  Én például a játékosok kezelését oldottam meg így, amiket fent irtam azok alapján bővítheted a listát.

SQL lekérdezés dialogba (2)
« Válasz #6 Dátum: 2016. június 15. - 23:10:21 »
0 Show voters
Köszönöm szépen a segítséget sikerült össze hozni!

 

SimplePortal 2.3.7 © 2008-2024, SimplePortal