Szerző Téma: MySQL Lementési Hiba  (Megtekintve 1422 alkalommal)

MySQL Lementési Hiba
« Dátum: 2014. április 24. - 12:59:36 »
0 Show voters
Hali!
Nem rég letöltöttem egy MySQL Regisztráció/Bejelentkezõ szkriptet,abban az alap benne volt (név,jelszó),ezt le is menti sikeresen viszont a pénzt és pontot már nem menti le.
R7-es MySQL Plugin -t használok,R6-osra meg nem találtam példa szkriptet.
Ezt írja a MySQL_LOG Fájl:
 

[12:54:32] CMySQLHandler::CMySQLHandler() - Connecting to \"localhost\" | DB: \"projectrp\" | Username: \"root\"
[12:54:32] CMySQLHandler::Connect() - Connection was successful.
[12:54:32] CMySQLHandler::Connect() - Auto-Reconnect has been enabled.
[12:54:51] >> mysql_query_callback( Connection handle: 1 )
[12:54:51] Passing query SELECT * FROM `user` WHERE `username` = \'Roberto_Belmonte\' | ii
[12:54:51] ProcessQueryThread(OnUserCheck) - Query was successful. (SELECT * FROM `user` WHERE `username` = \'Roberto_Belmonte\')
[12:54:51] ProcessQueryThread(OnUserCheck) - Data caching enabled.
[12:54:51] CMySQLHandler::StoreResult() - Result was stored.
[12:54:51] CMySQLHandler::FreeResult() - Result was successfully free\'d.
[12:54:51] CMySQLHandler::ProcessQueryThread() - Data is getting passed to ->ProcessTick()
[12:54:51] OnUserCheck(ii) - Threaded function called.
[12:54:51] >> cache_get_data( Connection handle: 1 )
[12:54:51] ProcessTick() - The cache has been cleared.
[12:54:53] >> mysql_real_escape_string( Connection handle: 1 )
[12:54:53] CMySQLHandler::EscapeString(raptor); - Escaped 6 characters to raptor.
[12:54:53] >> mysql_query_callback( Connection handle: 1 )
[12:54:53] Passing query INSERT INTO user (username,password) VALUES (\'Roberto_Belmonte\',(\'raptor\'))  |
[12:54:53] ProcessQueryThread() - Query was successful. (INSERT INTO user (username,password) VALUES (\'Roberto_Belmonte\',(\'raptor\')) )
[12:54:53] CMySQLHandler::ProcessQueryThread() - Data is getting passed to ->ProcessTick()

 
Amikor a játékos csatlakozik
 

public OnUserCheck(playerid)
{
new num_rows,num_fields;
cache_get_data(num_rows,num_fields,dbhandle);
if(num_rows==0)
{
    //Regisztráció
    ShowPlayerDialog(playerid,DIALOG_REGISTER,DIALOG_STYLE_PASSWORD,\"Regisztráció\",\"Kérlek írd be a jelszót!\",\"Rendben\",\"Mégse\");
}
else
{
    //Bejelentkezés
    ShowPlayerDialog(playerid,DIALOG_LOGIN,DIALOG_STYLE_PASSWORD,\"Bejelentkezés\",\"Kérlek írd be a jelszót!\",\"Rendben\",\"Mégse\");
}
return 1;
}
public OnPlayerConnect(playerid)
{
//Bejelentkez/Regisztráció
new name[MAX_PLAYER_NAME],query[1024];
GetPlayerName(playerid,name,sizeof(name));
format(query, sizeof(query), \"SELECT * FROM `user` WHERE `username` = \'%s\'\", GetName(playerid));
mysql_function_query(dbhandle, query, true, \"OnUserCheck\", \"ii\", playerid);
return 1;
}

 
Adatmentés:
 

savePlayer(playerid)
{
if(sInfo[playerid][loggedin]==0) return 1;
//Pénz,szint mentés
new query[1024];
format(query,sizeof(query),\"UPDATE `user` SET level=\'%i\',money=\'%i\' WHERE username = \'%s\'\",sInfo[playerid][level],sInfo[playerid][penz],GetName(playerid));
mysql_function_query(dbhandle,query,false,\"\",\"\");
return 1;
}
public OnPlayerDisconnect(playerid, reason)
{
savePlayer(playerid);
return 1;
}

 
Bejelentkezés:
 

public OnPasswordResponse(playerid) //Bejelentkezés
{
new num_fields,num_rows;
cache_get_data(num_rows,num_fields,dbhandle);
if(num_rows==1)
{
    //Jó jelszó
    mysql_free_result(dbhandle);
   
    sInfo[playerid][loggedin] = 1;
   
        cache_get_field_content(1,\"id\",sInfo[playerid][id],dbhandle);
    cache_get_field_content(4,\"level\",sInfo[playerid][level],dbhandle);
cache_get_field_content(5,\"money\",sInfo[playerid][penz],dbhandle);
SetPlayerScore(playerid,sInfo[playerid][level]);
SendClientMessage(playerid,COLOR_GREEN,\"Sikeresen Bejelentkeztél!\");
}
else
{
    //Rossz jelszó
    SendClientMessage(playerid,COLOR_RED,\"Rossz jelszó!\");
    ShowPlayerDialog(playerid,DIALOG_LOGIN,DIALOG_STYLE_PASSWORD,\"Bejelentkezés\",\"Kérlek írd be a jelszót!\",\"Rendben\",\"Mégse\");
}
return 1;
}

 
Aki segít annak megy a + mert fontos lenne,nagyon,elõre is köszönöm szépen.
[mod]Kitettem helyetted a PAWN Code Taget![/mod]
« Utoljára szerkesztve: 2014. április 24. - 18:19:42 írta Dfoglalo »

Nem elérhető KovaNovik

  • 1121
  • KovaNovik
    • Profil megtekintése
MySQL Lementési Hiba
« Válasz #1 Dátum: 2014. április 24. - 14:42:42 »
0 Show voters
Üdv!
A regisztrációt elfelejtetted mellékelni, de a MySQL log rávezetett a probléma lehetséges megoldására.
Szóval, regisztráció után az INSERT queryhez írs hozzá a pontot is.
U.i.: az r38-as plugint is használhatnád, bár nem tudom, mennyire kellene ahhoz ezt átalakítani.

MySQL Lementési Hiba
« Válasz #2 Dátum: 2014. április 24. - 15:08:52 »
0 Show voters
Idézetet írta: KovaNovik date=1398343362\" data-ipsquote-contentapp=\"forums\" data-ipsquote-contenttype=\"forums\" data-ipsquote-contentid=\"47882\" data-ipsquote-contentclass=\"forums_Topic
Üdv!
A regisztrációt elfelejtetted mellékelni, de a MySQL log rávezetett a probléma lehetséges megoldására.
Szóval, regisztráció után az INSERT queryhez írs hozzá a pontot is.
U.i.: az r38-as plugint is használhatnád, bár nem tudom, mennyire kellene ahhoz ezt átalakítani.
 
Hali!
Na szóval,itt a regisztráció:
 

if(dialogid == DIALOG_REGISTER) //Regisztráció
{
    if(response)
    {
        new name[MAX_PLAYER_NAME],query[1024],passwort[35];
        GetPlayerName(playerid,name,sizeof(name));
        if(strlen(inputtext)>3)
        {
            //Regisztráció
            mysql_real_escape_string(inputtext,passwort,dbhandle);
            format(query,sizeof(query),\"INSERT INTO user (username,password) VALUES (\'%s\',(\'%s\')) \",name,passwort);
            //Beállítjuk az adatokat
            sInfo[playerid][penz] = 30000;
            sInfo[playerid][level] = 1;
            sInfo[playerid][ruha] = 26;
           
            SetPlayerScore(playerid, 1);
            SetPlayerSkin(playerid,26);
           
            mysql_function_query(dbhandle,query,false,\"\",\"\");
            SendClientMessage(playerid,COLOR_GREEN,\"Sikeresen Regisztráltál!\");
            SendClientMessage(playerid,COLOR_GREEN,\"Sikeresen Bejelentkeztél!\");
        }
        else
        {
            //Ha kevesebb mint 4 karakter
            SendClientMessage(playerid,COLOR_RED,\"A Jelszónak minimum 4 karakternek kell lenni!\");
            ShowPlayerDialog(playerid,DIALOG_REGISTER,DIALOG_STYLE_PASSWORD,\"Regisztráció\",\"Kérlek írd be a jelszót!\",\"Rendben\",\"Mégse\");
        }
    }
    else
    {
        Kick(playerid);
    }
    return 1;
}

 
Igen,jó lenne az R38-as csak megint át kéne alakítani,nekem nem kellenek plusz funkciók csak annyi hogy az alap adatokat,stabilan lementse mindig.
[mod]Kitettem helyetted a PAWN Code Taget![/mod]
« Utoljára szerkesztve: 2014. április 24. - 18:19:08 írta Dfoglalo »

Nem elérhető Dfoglalo

  • 4069
  • Globális Moderátor
    • Profil megtekintése
MySQL Lementési Hiba
« Válasz #3 Dátum: 2014. április 24. - 18:38:08 »
0 Show voters
R7-es MySQL Plugin -t használok,R6-osra meg nem találtam példa szkriptet.[/quote]
Ez R38, nem pedig R7. R6-tal pedig ne foglalkozz mert nagyon elavult, \"buta\" (legalábbis az R38-hoz képest biztosan) és egy fokkal talán lassabb is.
 
Igen,jó lenne az R38-as csak megint át kéne alakítani,nekem nem kellenek plusz funkciók csak annyi hogy az alap adatokat,stabilan lementse mindig.[/quote]
Mint már írtam, na meg mint már le lett írva elõttem, de úgy látszik, nem értetted meg. Ez R38-cal íródott. Az lehet, hogy R7-el is megy, vagy éppen R38 alatti, de R7 feletti plugint használsz, nem tudom. De minden jel arra utal, hogy ez bizony R38. Igaz, van benne olyan, ami R7-ben is megtalálható, de R38 szerintem.
 
a MySQL log rávezetett a probléma lehetséges megoldására.
Szóval, regisztráció után az INSERT queryhez írs hozzá a pontot is.
[/quote]
Azzal semmi probléma sincs, legalábbis a log szerint.
 

[12:54:53] Passing query INSERT INTO user (username,password) VALUES (\'Roberto_Belmonte\',(\'raptor\'))  | 
[12:54:53] ProcessQueryThread() - Query was successful. (INSERT INTO user (username,password) VALUES (\'Roberto_Belmonte\',(\'raptor\')) )

 
[/quote]
 
Query was successful[/quote]
Nem is értem, hogy vezethetett rá téged a lehetséges megoldásra :D Amúgy sem azzal volt a probléma, hanem a mentéssel. Igaz, ott is bekerül egyfajta érték (ha nem adsz meg semmit, 0, vagy a mezõ típusának megfelelõ érték), bár sosem 1. Viszont az részletkérdés, hogy regkor ment e, elvégre nem csak a regkor kell menteni, hanem mindig frissíteni is kell az adatokat. És ott lesz hiba a témanyitó elmondása szerint. De nem véletlen, hogy nem menti a pontot, elvégre meg sem adta a programnak azt az utasítást, hogy mentse a pontokat.
 

format(query,sizeof(query),\"UPDATE `user` SET level=\'%i\',money=\'%i\' WHERE username = \'%s\'\",sInfo[playerid][level],sInfo[playerid][penz],GetName(playerid));

 
[/quote]
Legalábbis én - habár lehet, hogy vak vagyok - nem látok itt ilyet. A mentésrõl pedig véletlenül sem másoltál logot, pedig szükség lenne rá, elvégre a pénzt mégiscsak akarod menteni, de nem menti el valamiért.


[mod]Kedves Témanyitó! Meguntam, hogy napokon belül minden témádban helyetted pakolom ki a pawn code tageket, nem is egy, hanem általában 4-5 db forráskódhoz. Ahogyan ebben a témában is. Fõleg az a baj, hogy a code tag kitételeim és a moderátori hozzászólásaim ellenére sem vagy képes kirakni a tageket utólag, a többi posztodban. Ezért lehet, hogy még nem is adnék semmit a szóbeli megdorgáláson kívül, de nyitottál 3 témát is, melyben a MySQL mentéssel van bajod. Minek? Ezen két dologért, de fõleg a felesleges témanyitásokért ment a figyelmeztetés.[/mod]
« Utoljára szerkesztve: 2014. április 24. - 18:46:32 írta Dfoglalo »

Nem elérhető KovaNovik

  • 1121
  • KovaNovik
    • Profil megtekintése
MySQL Lementési Hiba
« Válasz #4 Dátum: 2014. április 24. - 20:04:13 »
0 Show voters
Igen Dfoglalo. Sikeresen lefutott a query, ami belerakta a felhasználónevet. Csak arra azt hittem, hogy a pontot is insertelni kell. Nem értek én ehhez.

MySQL Lementési Hiba
« Válasz #5 Dátum: 2014. április 24. - 22:02:25 »
0 Show voters
Idézetet írta: Dfoglalo date=1398357488\" data-ipsquote-contentapp=\"forums\" data-ipsquote-contenttype=\"forums\" data-ipsquote-contentid=\"47882\" data-ipsquote-contentclass=\"forums_Topic

R7-es MySQL Plugin -t használok,R6-osra meg nem találtam példa szkriptet.
Ez R38, nem pedig R7. R6-tal pedig ne foglalkozz mert nagyon elavult, \"buta\" (legalábbis az R38-hoz képest biztosan) és egy fokkal talán lassabb is.
 
Igen,jó lenne az R38-as csak megint át kéne alakítani,nekem nem kellenek plusz funkciók csak annyi hogy az alap adatokat,stabilan lementse mindig.[/quote]
Mint már írtam, na meg mint már le lett írva elõttem, de úgy látszik, nem értetted meg. Ez R38-cal íródott. Az lehet, hogy R7-el is megy, vagy éppen R38 alatti, de R7 feletti plugint használsz, nem tudom. De minden jel arra utal, hogy ez bizony R38. Igaz, van benne olyan, ami R7-ben is megtalálható, de R38 szerintem.
 
a MySQL log rávezetett a probléma lehetséges megoldására.
Szóval, regisztráció után az INSERT queryhez írs hozzá a pontot is.
[/quote]
Azzal semmi probléma sincs, legalábbis a log szerint.
 

[12:54:53] Passing query INSERT INTO user (username,password) VALUES (\'Roberto_Belmonte\',(\'raptor\'))  | 
[12:54:53] ProcessQueryThread() - Query was successful. (INSERT INTO user (username,password) VALUES (\'Roberto_Belmonte\',(\'raptor\')) )

 
[/quote]
 
Query was successful[/quote]
Nem is értem, hogy vezethetett rá téged a lehetséges megoldásra :D Amúgy sem azzal volt a probléma, hanem a mentéssel. Igaz, ott is bekerül egyfajta érték (ha nem adsz meg semmit, 0, vagy a mezõ típusának megfelelõ érték), bár sosem 1. Viszont az részletkérdés, hogy regkor ment e, elvégre nem csak a regkor kell menteni, hanem mindig frissíteni is kell az adatokat. És ott lesz hiba a témanyitó elmondása szerint. De nem véletlen, hogy nem menti a pontot, elvégre meg sem adta a programnak azt az utasítást, hogy mentse a pontokat.
 

format(query,sizeof(query),\"UPDATE `user` SET level=\'%i\',money=\'%i\' WHERE username = \'%s\'\",sInfo[playerid][level],sInfo[playerid][penz],GetName(playerid));

 
[/quote]
Legalábbis én - habár lehet, hogy vak vagyok - nem látok itt ilyet. A mentésrõl pedig véletlenül sem másoltál logot, pedig szükség lenne rá, elvégre a pénzt mégiscsak akarod menteni, de nem menti el valamiért.


Kedves Témanyitó! Meguntam, hogy napokon belül minden témádban helyetted pakolom ki a pawn code tageket, nem is egy, hanem általában 4-5 db forráskódhoz. Ahogyan ebben a témában is. Fõleg az a baj, hogy a code tag kitételeim és a moderátori hozzászólásaim ellenére sem vagy képes kirakni a tageket utólag, a többi posztodban. Ezért lehet, hogy még nem is adnék semmit a szóbeli megdorgáláson kívül, de nyitottál 3 témát is, melyben a MySQL mentéssel van bajod. Minek? Ezen két dologért, de fõleg a felesleges témanyitásokért ment a figyelmeztetés.
 
[/quote]
Köszi a választ!
savePlayer callback alatt formátozom a query -t és frissítem (UPDATE-olom) benne az adatokat,de ahogy mondod hogy mindig kell frissíteni,tehát OnPlayerUpdate -nél is frissítsem ? Most nem értem kicsit amit írtál.

MySQL Lementési Hiba
« Válasz #6 Dátum: 2014. április 27. - 06:01:18 »
0 Show voters
NEHOGY betedd OnPlayerUpdate alá!
Az 1mp -ben lefut vagy 60x ha nem többször.. NE csináld..
 
format(query,sizeof(query),\"INSERT INTO user (username,password,penz,szint) VALUES (\'%s\',(\'%s\'),\'%d\',\'%d\') \",name,passwort,penz,szint);[/quote]
Ebbe beleírtam az username,password mögé a pénz,szint -et, ezeket a sorokat hozd létre a PhPMyAdmin -ba!
penz az varchar 11 legyen, a szint pedig varchar 10 kb.
a \"penz\" és \"szint\" változót defináld te magad, azt már csak meg tudod csinálni:)
( NEM LEHET CODE TAGET TENNI, NEM LEHET BETÛT FORMÁZNI, NEKEM NEM JELENTEK MEG A FUNKCIÓK! )
Szerkesztésbe sikerült kitenni a CODE taget és formázni a szöveget amit bele írtam!
Energetic
« Utoljára szerkesztve: 2014. április 27. - 06:05:11 írta Energetic1 »

Nem elérhető Dfoglalo

  • 4069
  • Globális Moderátor
    • Profil megtekintése
MySQL Lementési Hiba
« Válasz #7 Dátum: 2014. április 27. - 14:20:13 »
0 Show voters
Egy szóval sem mondtam ilyet, hogy OnPlayerUpdate alá tedd...


Amit pedig te írtál, Energetic1, már egyszer el lett magyarázva. Ha ott nem ad meg értéket, nem baj, mert 0 bekerülni értéknek. Annyira meg csak nem hülye, hogy ne hozott volna létre nekik mezõket...


A mentésrõl - ahol a hiba lehet - pedig még mindig nem adott forráskódot a kedves témanyitó.

MySQL Lementési Hiba
« Válasz #8 Dátum: 2014. április 27. - 17:17:02 »
0 Show voters
Idézetet írta: Dfoglalo date=1398601213\" data-ipsquote-contentapp=\"forums\" data-ipsquote-contenttype=\"forums\" data-ipsquote-contentid=\"47882\" data-ipsquote-contentclass=\"forums_Topic
Egy szóval sem mondtam ilyet, hogy OnPlayerUpdate alá tedd...


Amit pedig te írtál, Energetic1, már egyszer el lett magyarázva. Ha ott nem ad meg értéket, nem baj, mert 0 bekerülni értéknek. Annyira meg csak nem hülye, hogy ne hozott volna létre nekik mezõket...


A mentésrõl - ahol a hiba lehet - pedig még mindig nem adott forráskódot a kedves témanyitó.
 
Nem tudhatod, az ember mindenre képes . :D
Igen, tudom hogy nem mondtátok neki hogy rakja OnPlayerUpdate alá, csak õ kérdezte:)
Azért próbáltam az elõzõ válaszomat megcsinálni érthetõre, mert ahogy láttam az elõzõket nem nagyon értette.
Bocs az offért.
Energetic

MySQL Lementési Hiba
« Válasz #9 Dátum: 2014. április 24. - 12:59:36 »
0 Show voters
Hali!
Nem rég letöltöttem egy MySQL Regisztráció/Bejelentkezõ szkriptet,abban az alap benne volt (név,jelszó),ezt le is menti sikeresen viszont a pénzt és pontot már nem menti le.
R7-es MySQL Plugin -t használok,R6-osra meg nem találtam példa szkriptet.
Ezt írja a MySQL_LOG Fájl:
 

[12:54:32] CMySQLHandler::CMySQLHandler() - Connecting to \"localhost\" | DB: \"projectrp\" | Username: \"root\"
[12:54:32] CMySQLHandler::Connect() - Connection was successful.
[12:54:32] CMySQLHandler::Connect() - Auto-Reconnect has been enabled.
[12:54:51] >> mysql_query_callback( Connection handle: 1 )
[12:54:51] Passing query SELECT * FROM `user` WHERE `username` = \'Roberto_Belmonte\' | ii
[12:54:51] ProcessQueryThread(OnUserCheck) - Query was successful. (SELECT * FROM `user` WHERE `username` = \'Roberto_Belmonte\')
[12:54:51] ProcessQueryThread(OnUserCheck) - Data caching enabled.
[12:54:51] CMySQLHandler::StoreResult() - Result was stored.
[12:54:51] CMySQLHandler::FreeResult() - Result was successfully free\'d.
[12:54:51] CMySQLHandler::ProcessQueryThread() - Data is getting passed to ->ProcessTick()
[12:54:51] OnUserCheck(ii) - Threaded function called.
[12:54:51] >> cache_get_data( Connection handle: 1 )
[12:54:51] ProcessTick() - The cache has been cleared.
[12:54:53] >> mysql_real_escape_string( Connection handle: 1 )
[12:54:53] CMySQLHandler::EscapeString(raptor); - Escaped 6 characters to raptor.
[12:54:53] >> mysql_query_callback( Connection handle: 1 )
[12:54:53] Passing query INSERT INTO user (username,password) VALUES (\'Roberto_Belmonte\',(\'raptor\'))  |
[12:54:53] ProcessQueryThread() - Query was successful. (INSERT INTO user (username,password) VALUES (\'Roberto_Belmonte\',(\'raptor\')) )
[12:54:53] CMySQLHandler::ProcessQueryThread() - Data is getting passed to ->ProcessTick()

 
Amikor a játékos csatlakozik
 

public OnUserCheck(playerid)
{
new num_rows,num_fields;
cache_get_data(num_rows,num_fields,dbhandle);
if(num_rows==0)
{
    //Regisztráció
    ShowPlayerDialog(playerid,DIALOG_REGISTER,DIALOG_STYLE_PASSWORD,\"Regisztráció\",\"Kérlek írd be a jelszót!\",\"Rendben\",\"Mégse\");
}
else
{
    //Bejelentkezés
    ShowPlayerDialog(playerid,DIALOG_LOGIN,DIALOG_STYLE_PASSWORD,\"Bejelentkezés\",\"Kérlek írd be a jelszót!\",\"Rendben\",\"Mégse\");
}
return 1;
}
public OnPlayerConnect(playerid)
{
//Bejelentkez/Regisztráció
new name[MAX_PLAYER_NAME],query[1024];
GetPlayerName(playerid,name,sizeof(name));
format(query, sizeof(query), \"SELECT * FROM `user` WHERE `username` = \'%s\'\", GetName(playerid));
mysql_function_query(dbhandle, query, true, \"OnUserCheck\", \"ii\", playerid);
return 1;
}

 
Adatmentés:
 

savePlayer(playerid)
{
if(sInfo[playerid][loggedin]==0) return 1;
//Pénz,szint mentés
new query[1024];
format(query,sizeof(query),\"UPDATE `user` SET level=\'%i\',money=\'%i\' WHERE username = \'%s\'\",sInfo[playerid][level],sInfo[playerid][penz],GetName(playerid));
mysql_function_query(dbhandle,query,false,\"\",\"\");
return 1;
}
public OnPlayerDisconnect(playerid, reason)
{
savePlayer(playerid);
return 1;
}

 
Bejelentkezés:
 

public OnPasswordResponse(playerid) //Bejelentkezés
{
new num_fields,num_rows;
cache_get_data(num_rows,num_fields,dbhandle);
if(num_rows==1)
{
    //Jó jelszó
    mysql_free_result(dbhandle);
   
    sInfo[playerid][loggedin] = 1;
   
        cache_get_field_content(1,\"id\",sInfo[playerid][id],dbhandle);
    cache_get_field_content(4,\"level\",sInfo[playerid][level],dbhandle);
cache_get_field_content(5,\"money\",sInfo[playerid][penz],dbhandle);
SetPlayerScore(playerid,sInfo[playerid][level]);
SendClientMessage(playerid,COLOR_GREEN,\"Sikeresen Bejelentkeztél!\");
}
else
{
    //Rossz jelszó
    SendClientMessage(playerid,COLOR_RED,\"Rossz jelszó!\");
    ShowPlayerDialog(playerid,DIALOG_LOGIN,DIALOG_STYLE_PASSWORD,\"Bejelentkezés\",\"Kérlek írd be a jelszót!\",\"Rendben\",\"Mégse\");
}
return 1;
}

 
Aki segít annak megy a + mert fontos lenne,nagyon,elõre is köszönöm szépen.
[mod]Kitettem helyetted a PAWN Code Taget![/mod]
« Utoljára szerkesztve: 2014. április 24. - 18:19:42 írta Dfoglalo »

Nem elérhető KovaNovik

  • 1121
  • KovaNovik
    • Profil megtekintése
MySQL Lementési Hiba
« Válasz #10 Dátum: 2014. április 24. - 14:42:42 »
0 Show voters
Üdv!
A regisztrációt elfelejtetted mellékelni, de a MySQL log rávezetett a probléma lehetséges megoldására.
Szóval, regisztráció után az INSERT queryhez írs hozzá a pontot is.
U.i.: az r38-as plugint is használhatnád, bár nem tudom, mennyire kellene ahhoz ezt átalakítani.

MySQL Lementési Hiba
« Válasz #11 Dátum: 2014. április 24. - 15:08:52 »
0 Show voters
Idézetet írta: KovaNovik date=1398343362\" data-ipsquote-contentapp=\"forums\" data-ipsquote-contenttype=\"forums\" data-ipsquote-contentid=\"47882\" data-ipsquote-contentclass=\"forums_Topic
Üdv!
A regisztrációt elfelejtetted mellékelni, de a MySQL log rávezetett a probléma lehetséges megoldására.
Szóval, regisztráció után az INSERT queryhez írs hozzá a pontot is.
U.i.: az r38-as plugint is használhatnád, bár nem tudom, mennyire kellene ahhoz ezt átalakítani.
 
Hali!
Na szóval,itt a regisztráció:
 

if(dialogid == DIALOG_REGISTER) //Regisztráció
{
    if(response)
    {
        new name[MAX_PLAYER_NAME],query[1024],passwort[35];
        GetPlayerName(playerid,name,sizeof(name));
        if(strlen(inputtext)>3)
        {
            //Regisztráció
            mysql_real_escape_string(inputtext,passwort,dbhandle);
            format(query,sizeof(query),\"INSERT INTO user (username,password) VALUES (\'%s\',(\'%s\')) \",name,passwort);
            //Beállítjuk az adatokat
            sInfo[playerid][penz] = 30000;
            sInfo[playerid][level] = 1;
            sInfo[playerid][ruha] = 26;
           
            SetPlayerScore(playerid, 1);
            SetPlayerSkin(playerid,26);
           
            mysql_function_query(dbhandle,query,false,\"\",\"\");
            SendClientMessage(playerid,COLOR_GREEN,\"Sikeresen Regisztráltál!\");
            SendClientMessage(playerid,COLOR_GREEN,\"Sikeresen Bejelentkeztél!\");
        }
        else
        {
            //Ha kevesebb mint 4 karakter
            SendClientMessage(playerid,COLOR_RED,\"A Jelszónak minimum 4 karakternek kell lenni!\");
            ShowPlayerDialog(playerid,DIALOG_REGISTER,DIALOG_STYLE_PASSWORD,\"Regisztráció\",\"Kérlek írd be a jelszót!\",\"Rendben\",\"Mégse\");
        }
    }
    else
    {
        Kick(playerid);
    }
    return 1;
}

 
Igen,jó lenne az R38-as csak megint át kéne alakítani,nekem nem kellenek plusz funkciók csak annyi hogy az alap adatokat,stabilan lementse mindig.
[mod]Kitettem helyetted a PAWN Code Taget![/mod]
« Utoljára szerkesztve: 2014. április 24. - 18:19:08 írta Dfoglalo »

Nem elérhető Dfoglalo

  • 4069
  • Globális Moderátor
    • Profil megtekintése
MySQL Lementési Hiba
« Válasz #12 Dátum: 2014. április 24. - 18:38:08 »
0 Show voters
R7-es MySQL Plugin -t használok,R6-osra meg nem találtam példa szkriptet.[/quote]
Ez R38, nem pedig R7. R6-tal pedig ne foglalkozz mert nagyon elavult, \"buta\" (legalábbis az R38-hoz képest biztosan) és egy fokkal talán lassabb is.
 
Igen,jó lenne az R38-as csak megint át kéne alakítani,nekem nem kellenek plusz funkciók csak annyi hogy az alap adatokat,stabilan lementse mindig.[/quote]
Mint már írtam, na meg mint már le lett írva elõttem, de úgy látszik, nem értetted meg. Ez R38-cal íródott. Az lehet, hogy R7-el is megy, vagy éppen R38 alatti, de R7 feletti plugint használsz, nem tudom. De minden jel arra utal, hogy ez bizony R38. Igaz, van benne olyan, ami R7-ben is megtalálható, de R38 szerintem.
 
a MySQL log rávezetett a probléma lehetséges megoldására.
Szóval, regisztráció után az INSERT queryhez írs hozzá a pontot is.
[/quote]
Azzal semmi probléma sincs, legalábbis a log szerint.
 

[12:54:53] Passing query INSERT INTO user (username,password) VALUES (\'Roberto_Belmonte\',(\'raptor\'))  | 
[12:54:53] ProcessQueryThread() - Query was successful. (INSERT INTO user (username,password) VALUES (\'Roberto_Belmonte\',(\'raptor\')) )

 
[/quote]
 
Query was successful[/quote]
Nem is értem, hogy vezethetett rá téged a lehetséges megoldásra :D Amúgy sem azzal volt a probléma, hanem a mentéssel. Igaz, ott is bekerül egyfajta érték (ha nem adsz meg semmit, 0, vagy a mezõ típusának megfelelõ érték), bár sosem 1. Viszont az részletkérdés, hogy regkor ment e, elvégre nem csak a regkor kell menteni, hanem mindig frissíteni is kell az adatokat. És ott lesz hiba a témanyitó elmondása szerint. De nem véletlen, hogy nem menti a pontot, elvégre meg sem adta a programnak azt az utasítást, hogy mentse a pontokat.
 

format(query,sizeof(query),\"UPDATE `user` SET level=\'%i\',money=\'%i\' WHERE username = \'%s\'\",sInfo[playerid][level],sInfo[playerid][penz],GetName(playerid));

 
[/quote]
Legalábbis én - habár lehet, hogy vak vagyok - nem látok itt ilyet. A mentésrõl pedig véletlenül sem másoltál logot, pedig szükség lenne rá, elvégre a pénzt mégiscsak akarod menteni, de nem menti el valamiért.


[mod]Kedves Témanyitó! Meguntam, hogy napokon belül minden témádban helyetted pakolom ki a pawn code tageket, nem is egy, hanem általában 4-5 db forráskódhoz. Ahogyan ebben a témában is. Fõleg az a baj, hogy a code tag kitételeim és a moderátori hozzászólásaim ellenére sem vagy képes kirakni a tageket utólag, a többi posztodban. Ezért lehet, hogy még nem is adnék semmit a szóbeli megdorgáláson kívül, de nyitottál 3 témát is, melyben a MySQL mentéssel van bajod. Minek? Ezen két dologért, de fõleg a felesleges témanyitásokért ment a figyelmeztetés.[/mod]
« Utoljára szerkesztve: 2014. április 24. - 18:46:32 írta Dfoglalo »

Nem elérhető KovaNovik

  • 1121
  • KovaNovik
    • Profil megtekintése
MySQL Lementési Hiba
« Válasz #13 Dátum: 2014. április 24. - 20:04:13 »
0 Show voters
Igen Dfoglalo. Sikeresen lefutott a query, ami belerakta a felhasználónevet. Csak arra azt hittem, hogy a pontot is insertelni kell. Nem értek én ehhez.

MySQL Lementési Hiba
« Válasz #14 Dátum: 2014. április 24. - 22:02:25 »
0 Show voters
Idézetet írta: Dfoglalo date=1398357488\" data-ipsquote-contentapp=\"forums\" data-ipsquote-contenttype=\"forums\" data-ipsquote-contentid=\"47882\" data-ipsquote-contentclass=\"forums_Topic

R7-es MySQL Plugin -t használok,R6-osra meg nem találtam példa szkriptet.
Ez R38, nem pedig R7. R6-tal pedig ne foglalkozz mert nagyon elavult, \"buta\" (legalábbis az R38-hoz képest biztosan) és egy fokkal talán lassabb is.
 
Igen,jó lenne az R38-as csak megint át kéne alakítani,nekem nem kellenek plusz funkciók csak annyi hogy az alap adatokat,stabilan lementse mindig.[/quote]
Mint már írtam, na meg mint már le lett írva elõttem, de úgy látszik, nem értetted meg. Ez R38-cal íródott. Az lehet, hogy R7-el is megy, vagy éppen R38 alatti, de R7 feletti plugint használsz, nem tudom. De minden jel arra utal, hogy ez bizony R38. Igaz, van benne olyan, ami R7-ben is megtalálható, de R38 szerintem.
 
a MySQL log rávezetett a probléma lehetséges megoldására.
Szóval, regisztráció után az INSERT queryhez írs hozzá a pontot is.
[/quote]
Azzal semmi probléma sincs, legalábbis a log szerint.
 

[12:54:53] Passing query INSERT INTO user (username,password) VALUES (\'Roberto_Belmonte\',(\'raptor\'))  | 
[12:54:53] ProcessQueryThread() - Query was successful. (INSERT INTO user (username,password) VALUES (\'Roberto_Belmonte\',(\'raptor\')) )

 
[/quote]
 
Query was successful[/quote]
Nem is értem, hogy vezethetett rá téged a lehetséges megoldásra :D Amúgy sem azzal volt a probléma, hanem a mentéssel. Igaz, ott is bekerül egyfajta érték (ha nem adsz meg semmit, 0, vagy a mezõ típusának megfelelõ érték), bár sosem 1. Viszont az részletkérdés, hogy regkor ment e, elvégre nem csak a regkor kell menteni, hanem mindig frissíteni is kell az adatokat. És ott lesz hiba a témanyitó elmondása szerint. De nem véletlen, hogy nem menti a pontot, elvégre meg sem adta a programnak azt az utasítást, hogy mentse a pontokat.
 

format(query,sizeof(query),\"UPDATE `user` SET level=\'%i\',money=\'%i\' WHERE username = \'%s\'\",sInfo[playerid][level],sInfo[playerid][penz],GetName(playerid));

 
[/quote]
Legalábbis én - habár lehet, hogy vak vagyok - nem látok itt ilyet. A mentésrõl pedig véletlenül sem másoltál logot, pedig szükség lenne rá, elvégre a pénzt mégiscsak akarod menteni, de nem menti el valamiért.


Kedves Témanyitó! Meguntam, hogy napokon belül minden témádban helyetted pakolom ki a pawn code tageket, nem is egy, hanem általában 4-5 db forráskódhoz. Ahogyan ebben a témában is. Fõleg az a baj, hogy a code tag kitételeim és a moderátori hozzászólásaim ellenére sem vagy képes kirakni a tageket utólag, a többi posztodban. Ezért lehet, hogy még nem is adnék semmit a szóbeli megdorgáláson kívül, de nyitottál 3 témát is, melyben a MySQL mentéssel van bajod. Minek? Ezen két dologért, de fõleg a felesleges témanyitásokért ment a figyelmeztetés.
 
[/quote]
Köszi a választ!
savePlayer callback alatt formátozom a query -t és frissítem (UPDATE-olom) benne az adatokat,de ahogy mondod hogy mindig kell frissíteni,tehát OnPlayerUpdate -nél is frissítsem ? Most nem értem kicsit amit írtál.

 

SimplePortal 2.3.7 © 2008-2024, SimplePortal