-
helló,elkezdtem írni 1 módot,De mikor SQL-t beállítom,Mindig azt irja ki h [MYSQL]csatlakozás sikeres..
De ha átírom aza adatokat másra,akkor is ugyan azt irja.Pls help
public SQL_CSATLAKOZAS()
{
mysql_connect(SQL_HOST,SQL_USER,SQL_DATABASE,SQL_PW);
if(mysql_ping())
{
print(\"[MySQL] csatlakozás sikeres!\");
}
if(!mysql_ping())
{
print(\"[MySQL] csatlakozás sikertelen!\");
}
}
-
else if
-
és ha else -t írsz?
nálunk így van módba:
print( !\"MySQL: Kapcsolódás erre a címre \" MYSQL_HOST \" \" MYSQL_USER \" nevû felhasználóval. \\nAdatbázis neve: \" MYSQL_DB \".\" );
mysql_debug( 1 );
mysql_connect( !MYSQL_HOST, !MYSQL_USER, !MYSQL_DB, !MYSQL_PASS );
if( mysql_ping( ) != 1 )
{
print( !\"MySQL: Kapcsolódás sikertelen! (\" MYSQL_HOST \")\" );
print( !\"MySQL: A mód kikapcsol! (\" MYSQL_HOST \")\" );
SendRconCommand( !\"exit\" );
return 1;
}
print( !\"MySQL: Kapcsolódás elfogadva!\" MYSQL_HOST \"\" );
print( !\"MySQL: Adatbázis \" MYSQL_DB \" kiválasztva!\" );
-
if(mysql_ping() == 1)
ez akkor hogyha sikeres
-
mint látod, nem :D, nekünk így tökéletes( Gábor írta, úgyh profi munka ^^)
-
kösz a helpet,kicsit átediteltem és müködik,Ígyvan most:
public SQL_CSATLAKOZAS()
{
mysql_connect( !SQL_HOST, !SQL_USER, !SQL_DATABASE, !SQL_PW );
if( mysql_ping( ) != 1 )
{
mysql_debug( 1 );
print( !\"MySQL: Kapcsolódás sikertelen!\");
print( !\"MySQL: A mód kikapcsol!\" );
// SendRconCommand( !\"exit\" );
}
if(mysql_ping() == 0)
{
print( !\"MySQL: Kapcsolódás elfogadva!\");
print( !\"MySQL: Adatbázis\" );
}
}
Pluszt osztom :D
nemzárom a témát,ha valamiben elakadok ide írok
Dupla hozzászólás automatikusan összefûzve. ( 2012. Szeptember 11. - 19:57:19 )
Most csintam az adatmentést,de nem nagyon jött össze,aza baj nem tudom hogyan definiáljam a file-t,úgy mint a Dini-nél?azért itt a kód
public AdatMentes(playerid)
{
new Float:saveX, Float:saveY, Float:saveZ;
GetPlayerIp(playerid, ip, 16);
GetPlayerPos(playerid, saveX, saveY, saveZ);
PlayerInfo[playerid][penz] = GetPlayerMoneyEx(playerid);
format(file, sizeof file,\"UPDATE `Adatok` SET `Penz` = \'%d\', `adminlevel` = \'%d\', WHERE `Felhasznalo` = \'%s\'\",PlayerInfo[playerid][penz],PlayerInfo[playerid][admin],Neve(playerid));
mysql_query(file);
format(file, sizeof file,\"UPDATE `Adatok` SET `spawnX` = \'%0.3f\' WHERE `Felhasznalo` = \'%s\'\",saveX,Neve(playerid));
if(saveX != 0.0) mysql_query(file);
format(file, sizeof file,\"UPDATE `Adatok` SET `spawnY` = \'%0.3f\' WHERE `Felhasznalo` = \'%s\'\",saveY,Neve(playerid));
if(saveY != 0.0) mysql_query(file);
format(file, sizeof file,\"UPDATE `Adatok` SET `spawnZ` = \'%0.3f\' WHERE `Felhasznalo` = \'%s\'\",saveZ,Neve(playerid));
if(saveZ != 0.0) mysql_query(file);
format(file, sizeof file,\"UPDATE `Adatok` SET `IPcim` = \'%s\' WHERE `Felhasznalo` = \'%s\'\",ip,Neve(playerid));
mysql_query(file);
}
-
és ha else -t írsz?
nálunk így van módba:
print( !\"MySQL: Kapcsolódás erre a címre \" MYSQL_HOST \" \" MYSQL_USER \" nevû felhasználóval. \\nAdatbázis neve: \" MYSQL_DB \".\" );
mysql_debug( 1 );
mysql_connect( !MYSQL_HOST, !MYSQL_USER, !MYSQL_DB, !MYSQL_PASS );
if( mysql_ping( ) != 1 )
{
print( !\"MySQL: Kapcsolódás sikertelen! (\" MYSQL_HOST \")\" );
print( !\"MySQL: A mód kikapcsol! (\" MYSQL_HOST \")\" );
SendRconCommand( !\"exit\" );
return 1;
}
print( !\"MySQL: Kapcsolódás elfogadva!\" MYSQL_HOST \"\" );
print( !\"MySQL: Adatbázis \" MYSQL_DB \" kiválasztva!\" );
Na fasza, nem is tudtam, hogy Gabor az Kurta.
print(!\"MySQL: Kapcsolódás erre a címre \" MYSQL_HOST \" \" MYSQL_USER \" nevû felhasználóval. \\nAdatbázis neve: \" MYSQL_DB \".\");
mysql_debug(1); // Ha élesbe futtatod, akkor ezt SEMMIKÉPP se hagy bekapcsolva! Ez az egész rendszer sebességét kb. ötszörösére csökkenti, ha nem tízszeresére..
mysql_connect(!MYSQL_HOST, !MYSQL_USER, !MYSQL_DB, !MYSQL_PASS);
if(mysql_ping() != 1)
{
print(!\"MySQL: Kapcsolódás sikertelen! (\" MYSQL_HOST \")\");
print(!\"MySQL: A mód kikapcsol! (\" MYSQL_HOST \")\");
SendRconCommand(!\"exit\");
return 1;
}
print(!\"MySQL: Kapcsolódás elfogadva!\" MYSQL_HOST \"\");
print(!\"MySQL: Adatbázis \" MYSQL_DB \" kiválasztva!\");
mysql_reconnect(); // Újrakapcsolódás engedélyezése
return 1;
(idéztem)
-
Lehet összekeverte a 2 nevét...ez nálam is elõ szokott fordulni
de Ha lehet,Maradjunk a témánál,Mindig van 1 kérdésem
Idézem:
nem tudom SQL-en hogyan kell def. a file-t úgy mint a Dini-nél?
public AdatMentes(playerid)
{
new Float:saveX, Float:saveY, Float:saveZ;
GetPlayerIp(playerid, ip, 16);
GetPlayerPos(playerid, saveX, saveY, saveZ);
PlayerInfo[playerid][penz] = GetPlayerMoneyEx(playerid);
format(file, sizeof file,\"UPDATE `Adatok` SET `Penz` = \'%d\', `adminlevel` = \'%d\', WHERE `Felhasznalo` = \'%s\'\",PlayerInfo[playerid][penz],PlayerInfo[playerid][admin],Neve(playerid));
mysql_query(file);
format(file, sizeof file,\"UPDATE `Adatok` SET `spawnX` = \'%0.3f\' WHERE `Felhasznalo` = \'%s\'\",saveX,Neve(playerid));
if(saveX != 0.0) mysql_query(file);
format(file, sizeof file,\"UPDATE `Adatok` SET `spawnY` = \'%0.3f\' WHERE `Felhasznalo` = \'%s\'\",saveY,Neve(playerid));
if(saveY != 0.0) mysql_query(file);
format(file, sizeof file,\"UPDATE `Adatok` SET `spawnZ` = \'%0.3f\' WHERE `Felhasznalo` = \'%s\'\",saveZ,Neve(playerid));
if(saveZ != 0.0) mysql_query(file);
format(file, sizeof file,\"UPDATE `Adatok` SET `IPcim` = \'%s\' WHERE `Felhasznalo` = \'%s\'\",ip,Neve(playerid));
mysql_query(file);
}
-
és ha else -t írsz?
nálunk így van módba:
print( !\"MySQL: Kapcsolódás erre a címre \" MYSQL_HOST \" \" MYSQL_USER \" nevû felhasználóval. \\nAdatbázis neve: \" MYSQL_DB \".\" );
mysql_debug( 1 );
mysql_connect( !MYSQL_HOST, !MYSQL_USER, !MYSQL_DB, !MYSQL_PASS );
if( mysql_ping( ) != 1 )
{
print( !\"MySQL: Kapcsolódás sikertelen! (\" MYSQL_HOST \")\" );
print( !\"MySQL: A mód kikapcsol! (\" MYSQL_HOST \")\" );
SendRconCommand( !\"exit\" );
return 1;
}
print( !\"MySQL: Kapcsolódás elfogadva!\" MYSQL_HOST \"\" );
print( !\"MySQL: Adatbázis \" MYSQL_DB \" kiválasztva!\" );
Na f***a, nem is tudtam, hogy Gabor az Kurta.
print(!\"MySQL: Kapcsolódás erre a címre \" MYSQL_HOST \" \" MYSQL_USER \" nevû felhasználóval. \\nAdatbázis neve: \" MYSQL_DB \".\");
mysql_debug(1); // Ha élesbe futtatod, akkor ezt SEMMIKÉPP se hagy bekapcsolva! Ez az egész rendszer sebességét kb. ötszörösére csökkenti, ha nem tízszeresére..
mysql_connect(!MYSQL_HOST, !MYSQL_USER, !MYSQL_DB, !MYSQL_PASS);
if(mysql_ping() != 1)
{
print(!\"MySQL: Kapcsolódás sikertelen! (\" MYSQL_HOST \")\");
print(!\"MySQL: A mód kikapcsol! (\" MYSQL_HOST \")\");
SendRconCommand(!\"exit\");
return 1;
}
print(!\"MySQL: Kapcsolódás elfogadva!\" MYSQL_HOST \"\");
print(!\"MySQL: Adatbázis \" MYSQL_DB \" kiválasztva!\");
mysql_reconnect(); // Újrakapcsolódás engedélyezése
return 1;
(idéztem)
[/quote]
OFF: Az csak a csatlakozás. :D A regisztrációs rendszer az egyedi, ha kell adok róla képet, vagy kódrészletet. :D
ON:
public AdatMentes( playerid )
{
new
Float: saveX,
Float: saveY,
Float: saveZ;
GetPlayerIp( playerid, ip, 16 );
GetPlayerPos( playerid, saveX, saveY, saveZ );
PlayerInfo[ playerid ][ penz ] = GetPlayerMoneyEx( playerid );
format( file, sizeof( file ), \"UPDATE `Adatok` SET `Penz` = \'%d\', `adminlevel` = \'%d\', `spawnX` = \'%.4f\', `spawnY` = \'%.4f\', `spawnZ` = \'%.4f\', `IPcim` = \'%s\' WHERE `Felhasznalo` = \'%s\'\", PlayerInfo[ playerid ][ penz ],PlayerInfo[ playerid ][ admin ], saveX, saveY, saveZ, ip, Neve( playerid ) );
mysql_query( file );
}
-
köszönöm,Megy a Plusz
-
Lehet összekeverte a 2 nevét...ez nálam is elõ szokott fordulni
de Ha lehet,Maradjunk a témánál,Mindig van 1 kérdésem
Idézem:
nem tudom SQL-en hogyan kell def. a file-t úgy mint a Dini-nél?
public AdatMentes(playerid)
{
new Float:saveX, Float:saveY, Float:saveZ;
GetPlayerIp(playerid, ip, 16);
GetPlayerPos(playerid, saveX, saveY, saveZ);
PlayerInfo[playerid][penz] = GetPlayerMoneyEx(playerid);
format(file, sizeof file,\"UPDATE `Adatok` SET `Penz` = \'%d\', `adminlevel` = \'%d\', WHERE `Felhasznalo` = \'%s\'\",PlayerInfo[playerid][penz],PlayerInfo[playerid][admin],Neve(playerid));
mysql_query(file);
format(file, sizeof file,\"UPDATE `Adatok` SET `spawnX` = \'%0.3f\' WHERE `Felhasznalo` = \'%s\'\",saveX,Neve(playerid));
if(saveX != 0.0) mysql_query(file);
format(file, sizeof file,\"UPDATE `Adatok` SET `spawnY` = \'%0.3f\' WHERE `Felhasznalo` = \'%s\'\",saveY,Neve(playerid));
if(saveY != 0.0) mysql_query(file);
format(file, sizeof file,\"UPDATE `Adatok` SET `spawnZ` = \'%0.3f\' WHERE `Felhasznalo` = \'%s\'\",saveZ,Neve(playerid));
if(saveZ != 0.0) mysql_query(file);
format(file, sizeof file,\"UPDATE `Adatok` SET `IPcim` = \'%s\' WHERE `Felhasznalo` = \'%s\'\",ip,Neve(playerid));
mysql_query(file);
}
A fene se tudja mire akarsz kilyukadni, de a lényeg:
Mysql szervernek egy karakterláncot küldesz el, ami tartalmazza az utasítást és az adatokat amivel dolgozzon.
Tehát kell egy ilyesmi:
new
query[128];
Ami számodra 127 karaktert (írásjelet) képes tárolni a 128. az a null terminated string \'\\0\'.
A másik lényeges dolog hogy egy mysql_query meghívás sokkal de sokkal lassabb mint egy fwrite ezért minden adatot egy karakterláncba kell tenni, ami ha meghaladja a 127 karaktert akkor növelni kell a query méretét mondjuk 256-ra, egyszerûen ki kell számolni mennyi is lehet maximálisan egy utasításnyi karakterlánc mérete és az alapján megadni méretét.
Mint az elõttem szóló csak nem hozta létre a változót, vagy global változót használ amit nem javaslok e téren, de hát mindegy.
public
AdatMentes( playerid )
{
new
Float:saveX,
Float:saveY,
Float:saveZ;
GetPlayerIp( playerid, ip, 16 );
GetPlayerPos( playerid, saveX, saveY, saveZ );
PlayerInfo[ playerid ][ penz ] = GetPlayerMoneyEx( playerid );
new
query[128];
format( query, sizeof( query ), \"UPDATE `Adatok` SET `Penz` = \'%d\', `adminlevel` = \'%d\', `spawnX` = \'%0.4f\', `spawnY` = \'%0.4f\', `spawnZ` = \'%0.4f\', `IPcim` = \'%s\' WHERE `Felhasznalo` = \'%s\'\", PlayerInfo[playerid][penz],PlayerInfo[playerid][admin], saveX, saveY, saveZ, ip, Neve( playerid ) );
mysql_query(query);
}
Edit:
És mint ahogy írtam feljebb, itt növelni kell a méretét mert ez a rész már eleve 157 karakter:
printf(\"strlen: %d\", strlen(\"UPDATE `Adatok` SET `Penz` = \'%d\', `adminlevel` = \'%d\', `spawnX` = \'%0.4f\', `spawnY` = \'%0.4f\', `spawnZ` = \'%0.4f\', `IPcim` = \'%s\' WHERE `Felhasznalo` = \'%s\'\"));
Nem egy pontos meghatározás de jó kis szemléltetés tehát 256 legyen ez:
new
query[256];