Szerző Téma: MySQL  (Megtekintve 927 alkalommal)

Nem elérhető Benceee

  • 4785
    • Profil megtekintése
MySQL
« Dátum: 2012. február 05. - 21:01:27 »
0 Show voters
Hali.
MySQL-be szeretnék menteni.
 

new Query[100];
format(Query,100,\"SELECT * FROM felh WHERE nev=\'%s\'\",JatekosNeve(playerid));
mysql_query(Query);

 
Eddig megy. De hogyan kell menteni? Chuck Norris leírásában nézem, de nincs leírva. Valaki írna egy komplett példát?
« Utoljára szerkesztve: 2012. február 05. - 21:06:22 írta Benceee »

Nem elérhető tonyo

  • 1335
  • Moderális Generátor
    • Profil megtekintése
MySQL
« Válasz #1 Dátum: 2012. február 05. - 21:13:57 »
+1 Show voters
nagyban függ a mysql plugintól. Ha azt használod, amire gondolok, akkor a folytatás:
[pawn]
mysql_store_result();
if(mysql_fetch_row(string))
{
// mûveletek a tárolt stringgel...
}[/pawn]
Ha addig akarod lehívni, ameddig ad adatot:
[pawn]
mysql_store_result();
while(mysql_fetch_row(string))
{
// mûveletek a tárolt stringgel...
}[/pawn]
A string a következõképpen néz ki, ha nem állítasz be elválasztó karaktert az elõre definiált helyett:
cella1|cella2|cella3|cella4|cella5|...|cella_sok
Ezt egyszerû split függvénnyel fel lehet darabolni a \"|\" jelek mentén. Splitet találsz itt a fórumon is, ha jó emlékszem.
Lehet függvénnyel is lekérdezgetni, de én elõbb MySQL-eztem PHP-ben, mint Pawn-ban, ezért bennem ez a módszer maradt meg.
Edit: lefelejtettem, hogy a végén szabadítsuk fel a memóriát, miután tároltuk az eredményt egy stringben
[pawn]mysql_free_result();[/pawn]
« Utoljára szerkesztve: 2012. február 05. - 21:17:19 írta Anthony »

Nem elérhető Benceee

  • 4785
    • Profil megtekintése
MySQL
« Válasz #2 Dátum: 2012. február 05. - 21:15:48 »
0 Show voters
Nekem az kellene, hogy frissítse az adatbázist. Pl. kilépésnél.
http://sampforum.hu/index.php?topic=9285.0

Nem elérhető tonyo

  • 1335
  • Moderális Generátor
    • Profil megtekintése
MySQL
« Válasz #3 Dátum: 2012. február 05. - 21:22:13 »
+1 Show voters
Áh, értem.
Frissítésnél csak egy UPDATE query-t kell lefuttatnunk, pl.:
[pawn]
new Query[100];
format(Query,100,\"UPDATE felh SET skin=%d WHERE nev=\\\"%s\\\"\",JatekosNeve(playerid),GetPlayerSkin(playerid));
mysql_query(Query);
[/pawn]
Akkor neked lényegében a MYSQL lekérdezésekkel kapcsolatban lenne kérdésed? Ahhoz ezt tudnám ajánlani:
Link egy MySQL útmutatóhoz.
Ismerõsöket is ide szoktam irányítani, nem rossz oldal. A 4 alap mûvelet megtanulására tökéletes(SELECT, UPDATE, INSERT INTO, DELETE).
Edit: \\\" helyett használható sima aposztróf(\') is, csak arra folyton ASCII kódot adott... A \\ jel ugye azért kell, hogy a fordító lássa, hogy az nem a karakter lánc vége, csupán a szövegbe rakjon egy idézõjelet.
« Utoljára szerkesztve: 2012. február 05. - 21:24:23 írta Anthony »

Nem elérhető Benceee

  • 4785
    • Profil megtekintése
MySQL
« Válasz #4 Dátum: 2012. február 05. - 21:34:03 »
0 Show voters
Sajnos nem menti le..
 
    GetPlayerPos(playerid, PlayerInfo[playerid][lx],PlayerInfo[playerid][ly],PlayerInfo[playerid][lz]);
new Query[100];
format(Query,100,\"SELECT * FROM felh WHEREnev=\\\"%s\\\"\",JatekosNeve(playerid));
mysql_query(Query);
format(Query,100,\"UPDATE felh SET lx=%f WHERE nev=\\\"%s\\\"\",PlayerInfo[playerid][lx],JatekosNeve(playerid));
mysql_query(Query);
format(Query,100,\"UPDATE felh SET ly=%f WHERE nev=\\\"%s\\\"\",PlayerInfo[playerid][ly],JatekosNeve(playerid));
mysql_query(Query);
format(Query,100,\"UPDATE felh SET lz=%f WHERE nev=\\\"%s\\\"\",PlayerInfo[playerid][lz],JatekosNeve(playerid));
mysql_query(Query);

Nem elérhető tonyo

  • 1335
  • Moderális Generátor
    • Profil megtekintése
MySQL
« Válasz #5 Dátum: 2012. február 05. - 21:38:54 »
+1 Show voters
Akkor valami nem helyesen van megadva.
[pawn]mysql_debug(1);[/pawn]
Ezt tedd a script elejére. Ekkor a szerver mappájában lesz egy mysql_log.txt, abban írni fogja hogy mi a hibaüzenet, miután lefut a lekérdezés.

Nem elérhető Benceee

  • 4785
    • Profil megtekintése
MySQL
« Válasz #6 Dátum: 2012. február 05. - 21:40:00 »
0 Show voters
mysql_debug(1); ottvan. De ugyan nincs .log file. Talán a plugin nem indul el. Megnézem.
Furcsa.
> MySQL plugin R6-2 successfully loaded.
Asszem megvan..
[21:33:13] CMySQLHandler::Query(SELECT * FROM felh WHEREnev=\"Mester_Bence\") - An error has occured. (Error ID: 1064, You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near \'=\"Mester_Bence\"\' at line 1)
Létre kéne talán hozni. :D:D
« Utoljára szerkesztve: 2012. február 05. - 21:42:57 írta Benceee »

Nem elérhető tonyo

  • 1335
  • Moderális Generátor
    • Profil megtekintése
MySQL
« Válasz #7 Dátum: 2012. február 05. - 21:43:38 »
+1 Show voters
Az sem árt :D De itt a hibaüzenet arra vonatkozik hogy a WHERE és a nev közé kell egy szóköz.

Nem elérhető Benceee

  • 4785
    • Profil megtekintése
MySQL
« Válasz #8 Dátum: 2012. február 05. - 21:45:47 »
0 Show voters
Megoldva!
Köszi Anthony. Kaptál pár +t:D:D

 

SimplePortal 2.3.7 © 2008-2024, SimplePortal