Szerző Téma: MySQL gond!  (Megtekintve 739 alkalommal)

MySQL gond!
« Dátum: 2012. december 15. - 18:02:34 »
0 Show voters
Hello mindenki.A modomat szeretném átírni dfileosról, MySQL re, mert hostoljuk a szervert és akkor már akarok csinálni pár cuccot php val is(Online Banlist stb).A modomba akarok csinálni egy admin rendszert is, viszont a regisztrációs részét nem tudom megcsinálni mysql el.dfile, dini, meg ezekkel menne, viszont ez a mysql még nem megy nekem.
Pár útmutatóval össze építettem egyet, de nem megy ahogy kéne.Láttam hogy itt fórumon is van pár cucc(kurta regisztrációs rendszere), viszont nem nagyon értem.Ezért samp wiki és más útmutató segítségével összeépítettem ezt, de mint mondtam nem megy.Nem tudom hol rontottam el ezért a ti segítségeteket kérném.
Az alap dolgokat (sql_host, user, db, pass, new fch stb) nem írom most ide le, mert azt mindenki tudja.
<b>OnGameModeInit</b>
 

FCH = mysql_connect(SQL_HOST, SQL_USER, SQL_DB, SQL_PASS);
    if(mysql_ping() == 1)
{
print(\"[MySQL]:Csatlakozás sikeres: \"SQL_DB\"\");
} else {
print(\"[MySQL]:Csatlakozás sikertelen: \"SQL_DB\"\");
}

 
<b>OnPlayerConnect</b> //Ha a játékos csatlakozik
 

format(query, sizeof(query), \"SELECT `Jatekos` FROM `jatekosok` WHERE `Jatekos` = \'%s\'\", PName(playerid));
mysql_function_query(FCH, query, true, \"LoadData\", \"d\",playerid);

 
<b>Script alján</b>
 

forward LoadData(playerid);
public LoadData(playerid)
{
    new rows, fields;
    cache_get_data(rows, fields);
    if(!rows)
    {
        format(rstr,sizeof(rstr),\"\"ZOLD_K\"Köszöntelek, %s! \\nEz a felhasználó már regisztrálva van.\\nKérlek írd be a jelszót, hogy lépj be!\",PName(playerid));
ShowPlayerDialog(playerid,REG_D,DIALOG_STYLE_INPUT,\"Belépés\",rstr,\"Belépés\",\"\");
    }
    else
    {
        format(rstr,sizeof(rstr),\"\"ZOLD_K\"Köszöntelek, %s! \\nEz a felhasználó még nincs regisztrálva. \\nKérlek regisztrálj!\",PName(playerid));
       ShowPlayerDialog(playerid,REG_D+1,DIALOG_STYLE_INPUT,\"Regisztráció\",rstr,\"Regisztráció\",\"\");
    }
}
forward RegPlayer(playerid);
public RegPlayer(playerid)
{
     SendClientMessage(playerid,ZOLD,\"Sikeresen regisztráltál a szerverre!\");
}
forward LoadInfos(playerid);
public LoadInfos(playerid)
{
 new temp[30];
     cache_get_field_content(0, \"KsEKredit\", temp);
     PlayerInfo[playerid][ksekredit] = strval(temp);
     cache_get_field_content(0, \"PSong\", PlayerInfo[playerid][psong]);
     cache_get_field_content(0, \"KsERank\", temp);
     PlayerInfo[playerid][kserank] = strval(temp);
     cache_get_field_content(0, \"FightStyle\", temp);
     PlayerInfo[playerid][fightstyle] = strval(temp);
     cache_get_field_content(0, \"Hour\", temp);
     PlayerInfo[playerid][hour] = strval(temp);
     cache_get_field_content(0, \"Minute\", temp);
     PlayerInfo[playerid][minute] = strval(temp);
 format(rstr, sizeof(rstr), \"Kredit: %d || Zenéd: %s || KsERank: %d || FightStyle: %d || Hour: %d || Minute: %d\", PlayerInfo[playerid][ksekredit], PlayerInfo[playerid][psong], PlayerInfo[playerid][kserank], PlayerInfo[playerid][fightstyle], PlayerInfo[playerid][hour], PlayerInfo[playerid][minute]);
 SendClientMessage(playerid,ZOLD,rstr);
}

 
<b>A két dialog</b>
 

if(dialogid == REG_D) {
if(!response) {
format(rstr,sizeof(rstr),\"\"ZOLD_K\"Köszöntelek, %s! \\nEz a felhasználó már regisztrálva van.\\nKérlek írd be a jelszót, hogy lépj be!\",PName(playerid));
ShowPlayerDialog(playerid,REG_D,DIALOG_STYLE_INPUT,\"Belépés\",rstr,\"Belépés\",\"\");
} else {
    if((strlen(inputtext) < 1)) {
format(rstr,sizeof(rstr),\"\"VOROS_K\"HIBA: A jelszó minimum 1 karakterböl kell hogy álljon!\"ZOLD_K\"Köszöntelek, %s! \\nEz a felhasználó már regisztrálva van.\\nKérlek írd be a jelszót, hogy lépj be!\",PName(playerid));
    ShowPlayerDialog(playerid,REG_D,DIALOG_STYLE_INPUT,\"Belépés\",rstr,\"Belépés\",\"\");
    } else {
format(query,sizeof(query),\"SELECT * FROM `jatekosok` WHERE `Jatekos` = \'%s\' AND `Password` = \'%s\'\",PName(playerid),inputtext);
mysql_function_query(FCH, query, true, \"LoadInfos\", \"d\", playerid);
}
}
    return 1;
}
    if(dialogid == REG_D+1) {
if(!response) {
format(rstr,sizeof(rstr),\"\"ZOLD_K\"Köszöntelek, %s! \\nEz a felhasználó még nincs regisztrálva. \\nKérlek regisztrálj!\",PName(playerid));
       ShowPlayerDialog(playerid,REG_D+1,DIALOG_STYLE_INPUT,\"Regisztráció\",rstr,\"Regisztráció\",\"\");
} else {
       if((strlen(inputtext) < 1)) return format(rstr,sizeof(rstr),\"\"VOROS_K\"HIBA: A jelszó minimum 1 karakterböl kell hogy álljon!\"ZOLD_K\"Köszöntelek, %s! \\nEz a felhasználó már regisztrálva van.\\nKérlek írd be a jelszót, hogy lépj be!\",PName(playerid)), ShowPlayerDialog(playerid,REG_D,DIALOG_STYLE_INPUT,\"Belépés\",rstr,\"Belépés\",\"\");
if((strlen(inputtext) > 20)) return format(rstr,sizeof(rstr),\"\"VOROS_K\"HIBA: A jelszó maximum 20 karakterböl állhat!\"ZOLD_K\"Köszöntelek, %s! \\nEz a felhasználó már regisztrálva van.\\nKérlek írd be a jelszót, hogy lépj be!\",PName(playerid)), ShowPlayerDialog(playerid,REG_D,DIALOG_STYLE_INPUT,\"Belépés\",rstr,\"Belépés\",\"\");
new q2[256];
q2 = \"INSERT INTO `jatekosok` (`Jatekos`, `Password`, `KsEKredit`, `PSong`, `KsERank`, `FightStyle`, `Hour`, `Minute`, `Level`, `Money`, `Kills`, `Warn`, `Deaths`) VALUES (\'%s\', \'%d\', \'%s\', \'%s\', \'%s\', \'%d\', \'%d\', \'%d\', \'%d\', \'%d\')\";
    format(query, sizeof(query),q2,PName(playerid), PlayerInfo[playerid][password], PlayerInfo[playerid][ksekredit], PlayerInfo[playerid][psong], PlayerInfo[playerid][kserank], PlayerInfo[playerid][fightstyle], PlayerInfo[playerid][hour], PlayerInfo[playerid][minute],PlayerInfo[playerid][adminlevel], PlayerInfo[playerid][money], PlayerInfo[playerid][kills],PlayerInfo[playerid][warn], PlayerInfo[playerid][deaths]);
    mysql_function_query(FCH, query, false, \"RegPlayer\", \"d\", playerid);
}
    return 1;
}

 
A sorrendeket ne figyeljétek.
Ha belépek a szerverre, írja, hogy csatlakozás sikeres.Az adatbázis teljesen üres.
<b> A script még nincs befejezve (Nincs benne infók lementése kilépés esetén úgyhogy tesztként manuálisan írtam az adatbázisban</b>
A panaszom az lenne, hogy ha belépek az a dialog jön be, hogy már regisztrálva vagyok, viszont még a nevemen nincs semmi infó az adatbázisba.
Köszönöm válaszotokat.

MySQL gond!
« Válasz #1 Dátum: 2012. december 15. - 18:46:44 »
0 Show voters
Akkor nem gyanús hogy fel kellene cserélni a két lehetõséget ha már egyszer nem azt csinálja amit kellene?
Vagy a feltétel vizsgálatot átalakítani úgy hogy jó legyen?
if(!rows)
helyett:
if(rows)

MySQL gond!
« Válasz #2 Dátum: 2012. december 15. - 21:51:53 »
0 Show voters
Juuu.Ezt elnéztem.Most veszem észre, hogy fordítva írtam :S.Húúú, sajnálom.Nem voltam figyelmes.Am ezn kívül a többi jó?

Dupla hozzászólás automatikusan összefûzve. ( 2012. december 15. - 22:12:07 )

De ennek ellenére nem akar menteni.Az adatbázis üres
« Utoljára szerkesztve: 2012. december 15. - 22:12:07 írta xSkillZ7x »

MySQL gond!
« Válasz #3 Dátum: 2012. december 15. - 23:54:40 »
0 Show voters
Nem tudom mi lehet a baja, így olvasásra egy két teszt után biztos rájönnék, csak arra nincs idõm.
Egy kérésem lenne amúgy, pontosabban észrevétel.
Ha jól veszem ki az egész kódból azt szeretnéd hogy kötelezõen regisztráljanak a játékosok, ha ez így van.
Akkor szerinted mennyi pontszámot gyûjtött össze, ha még úgymond lespawnolni se tudott?
Ergo:
Minek mented úgy az új adatokat hogy format PlayerInfo[playerid]money] Kills Deaths ?
Talán több mint nulla az értékük?
Mysql táblán alapértelmezett értékként beállítod ezen adatoszlopoknak a nullát, és máris nem kell minden adatot megadni egy új adatsor létrehozásakor (INSERT INTO). :)
Csakis az újonnan megadott adatok szükségesek, melyek a késõbbiek folyamán adatsor beazonosításra fognak szolgálni (PASS, NAME, IP, ..).

MySQL gond!
« Válasz #4 Dátum: 2012. december 16. - 14:59:23 »
0 Show voters
Tudom.Viszont akkor beírja a 0-t.Annyi hogy már alapból lehet mysql be rakni hogy alapértelmezett 0.
De nem is aval van gond.A <b>mysql_query</b>-s cuccot jobban értettem, viszont annyi hogy már én sem szeretnék nagyon lemaradni.Minden esetre este fáradt voltam, + azon kívül mást is csináltam, úgyhogy nem tudtam oda figyelni :S.

 

SimplePortal 2.3.7 © 2008-2024, SimplePortal