Balkan SA:MP

PAWN skriptanje, gamemodovi, filterskripte, include fajlovi, mape, pluginovi => Razgovor u vezi PAWN - skriptanja => Temu započeo: cofilinko poslato Januar 08, 2024, 19:24:17 POSLE PODNE

Naslov: [MySQL] Upisivanje/Izvlacenje podataka iz baze
Poruka od: cofilinko poslato Januar 08, 2024, 19:24:17 POSLE PODNE
Pitanje/savjet: Zanima me da li neko zna u cemu moze da bude problem. Radim svoj register sistem pomocu MySQL-a i do sada je sve islo odlicno. Dodao sam 3 razlicite stvari ali kada sam zeleo da dodam i eure, nakon zavrsene registracije se igrac ne spawnuje a samim tim ni ne registruje u bazu podataka. Ispod mozete videti liniju koja koju koristim za unosenje podataka u bazu
[pawn]
new
query[256],
name[MAX_PLAYER_NAME];
GetPlayerName(playerid, name, sizeof(name));
mysql_format(DBase, query, sizeof(query), "INSERT INTO `users` (`Ime`, `Lozinka`, `Level`, `Novac`, `Godine`, `Pol` ,`Drzava`, `Email`, `Smrti`, `Ubistva`, `Skin`, `Spawn`, `Banka`, `Racun`, Zlato`, `Euro`) \
VALUES ('%s', '%s', 1, 25000, '%d', '%d', '%d', '%s', 0, 0, '%d', 1, 0, 0, 0, 100)",
name, PI[playerid][Lozinka], PI[playerid][Godine], PI[playerid][Pol], PI[playerid][Drzava], PI[playerid][Email], PI[playerid][Skin]);
mysql_tquery(DBase, query, "NakonRegistracije", "i", playerid);
[/pawn]
Kada iz ovoga izbrisem `Euro` i 100, skripta radi normalno, igrac se spawnuje i ubacuje u bazu podataka.


Treba mi savet:
U bazi podataka mi je "As defined" postavljeno na 100(sto se eura tice), kada se igrac registruje, taj podatak se izvlaci i igracu se postavlja tih 100 eura. Da li je pametno da radim na takav nacin ili ne?
Naslov: Odg: [MySQL] Upisivanje/Izvlacenje podataka iz baze
Poruka od: №Grella poslato Januar 08, 2024, 20:39:39 POSLE PODNE
`Zlato`, `Euro`
Naslov: Odg: [MySQL] Upisivanje/Izvlacenje podataka iz baze
Poruka od: boky. poslato Januar 08, 2024, 20:53:36 POSLE PODNE
Citat: cofilinko poslato Januar 08, 2024, 19:24:17 POSLE PODNE
Pitanje/savjet: Zanima me da li neko zna u cemu moze da bude problem. Radim svoj register sistem pomocu MySQL-a i do sada je sve islo odlicno. Dodao sam 3 razlicite stvari ali kada sam zeleo da dodam i eure, nakon zavrsene registracije se igrac ne spawnuje a samim tim ni ne registruje u bazu podataka. Ispod mozete videti liniju koja koju koristim za unosenje podataka u bazu
[pawn]
new
query[256],
name[MAX_PLAYER_NAME];
GetPlayerName(playerid, name, sizeof(name));
mysql_format(DBase, query, sizeof(query), "INSERT INTO `users` (`Ime`, `Lozinka`, `Level`, `Novac`, `Godine`, `Pol` ,`Drzava`, `Email`, `Smrti`, `Ubistva`, `Skin`, `Spawn`, `Banka`, `Racun`, Zlato`, `Euro`) \
VALUES ('%s', '%s', 1, 25000, '%d', '%d', '%d', '%s', 0, 0, '%d', 1, 0, 0, 0, 100)",
name, PI[playerid][Lozinka], PI[playerid][Godine], PI[playerid][Pol], PI[playerid][Drzava], PI[playerid][Email], PI[playerid][Skin]);
mysql_tquery(DBase, query, "NakonRegistracije", "i", playerid);
[/pawn]
Kada iz ovoga izbrisem `Euro` i 100, skripta radi normalno, igrac se spawnuje i ubacuje u bazu podataka.


Treba mi savet:
U bazi podataka mi je "As defined" postavljeno na 100(sto se eura tice), kada se igrac registruje, taj podatak se izvlaci i igracu se postavlja tih 100 eura. Da li je pametno da radim na takav nacin ili ne?

Fali ti ` stavi ovako `zlato`
Naslov: Odg: [MySQL] Upisivanje/Izvlacenje podataka iz baze
Poruka od: cofilinko poslato Januar 08, 2024, 20:57:13 POSLE PODNE
Citat: sexeniiosi poslato Januar 08, 2024, 20:39:39 POSLE PODNE
`Zlato`, `Euro`

[pawn]

new
query[256],
name[MAX_PLAYER_NAME];
GetPlayerName(playerid, name, sizeof(name));
mysql_format(DBase, query, sizeof(query), "INSERT INTO `users` (`Ime`, `Lozinka`, `Level`, `Novac`, `Godine`, `Pol` ,`Drzava`, `Email`, `Smrti`, `Ubistva`, `Skin`, `Spawn`, `Banka`, `Racun`,
`Zlato`, `Euro`) \
VALUES ('%s', '%s', 1, 25000, '%d', '%d', '%d', '%s', 0, 0, '%d', 1, 0, 0, 0, 100)",
name, PI[playerid][Lozinka], PI[playerid][Godine], PI[playerid][Pol], PI[playerid][Drzava], PI[playerid][Email], PI[playerid][Skin]);
mysql_tquery(DBase, query, "NakonRegistracije", "i", playerid);

forward NakonRegistracije(playerid);
public NakonRegistracije(playerid)
{
   new query[256];
   mysql_format(DBase, query, sizeof(query), "SELECT * FROM `users` WHERE `Ime` = '%s' LIMIT 1", GetName(playerid));
   mysql_tquery(DBase, query, "UcitajNalog", "i", playerid);
        return 1;
}
forward UcitajNalog(playerid);
public UcitajNalog(playerid){
   new rows;
   cache_get_row_count(rows);
   if(!rows) return 0;
   else{
       cache_get_value_int(0, "Level", PI[playerid][Level]);
       cache_get_value_int(0, "Novac", PI[playerid][Novac]);
       cache_get_value_int(0, "Godine", PI[playerid][Godine]);
       cache_get_value_int(0, "Pol", PI[playerid][Pol]);
       cache_get_value_int(0, "Drzava", PI[playerid][Drzava]);
       cache_get_value(0, "Email", PI[playerid][Email], 255);
       cache_get_value_int(0, "Smrti", PI[playerid][Smrti]);
       cache_get_value_int(0, "Ubistva", PI[playerid][Ubistva]);
       cache_get_value_int(0, "Skin", PI[playerid][Skin]);
       cache_get_value_int(0, "Spawn", PI[playerid][Spawn]);
       cache_get_value_int(0, "Banka", PI[playerid][Banka]);
       cache_get_value_int(0, "Racun", PI[playerid][Racun]);
            cache_get_value_int(0, "Zlato", PI[playerid][Zlato]);
            cache_get_value_int(0, "Euro", PI[playerid][Euro]);
       SetPlayerScore(playerid, PI[playerid][Level]);
       ResetPlayerMoney(playerid); GivePlayerMoney(playerid, PI[playerid][Novac]);
       SetPlayerSkin(playerid, PI[playerid][Skin]);
   }
   PI[playerid][IsLoggedIn] = true;
   SpawnIgraca(playerid);
   return 1;
}
[/pawn]
Slucajno sam obrisao ` kad sam editovao ovde. Evo celokupan sistem da kazem.
Naslov: Odg: [MySQL] Upisivanje/Izvlacenje podataka iz baze
Poruka od: cofilinko poslato Januar 08, 2024, 21:34:55 POSLE PODNE
https://imgur.com/a/AkIej48 - Baza podataka
[pawn]
enum pInfo{
   ID,
   Lozinka[30],
   Ime[MAX_PLAYER_NAME],
   Level,
   Novac,
   Godine,
   Pol,
   Drzava,
   Email[60],
   Smrti,
   Ubistva,
   Skin,
   Spawn,
   Banka,
   Racun,
   Zlato,
   Euro,

   bool:IsLoggedIn,
   LoginAttempts,
   LoginTimer
}; new PI[MAX_PLAYERS][pInfo];
[/pawn]
Player Enum
Naslov: Odg: [MySQL] Upisivanje/Izvlacenje podataka iz baze
Poruka od: cofilinko poslato Januar 10, 2024, 14:02:35 POSLE PODNE
Bump
Naslov: Odg: [MySQL] Upisivanje/Izvlacenje podataka iz baze
Poruka od: // xunder poslato Januar 10, 2024, 14:41:44 POSLE PODNE
Postavi logove mysql-a ukoliko ima nekih gresaka u istim. Logove mozes naci u logs/errors.log.
Ukoliko nema nista onda ukljuci sve logove i posalji ih ovdje. Logove mozes naci u logs/plugins/mysql.log. Logovanje svega mozes ukljuciti funkcijom:

mysql_log(ALL);
Naslov: Odg: [MySQL] Upisivanje/Izvlacenje podataka iz baze
Poruka od: cofilinko poslato Januar 10, 2024, 15:31:18 POSLE PODNE
logs/errors.log
[pawn]
[01/10/24 15:28:56] [plugins/mysql] mysql_format: destination size '256' is too small (C:\Users\Korisnik\Desktop\Old Style RolePlay\gamemodes\osmysql.pwn:601)
[01/10/24 15:28:56] [plugins/mysql] error #1065 while executing query "": Query was empty (C:\Users\Korisnik\Desktop\Old Style RolePlay\gamemodes\osmysql.pwn:603)
[01/10/24 15:28:56] [log-core] exception 0XC0000005 (ACCESS_VIOLATION) from Vectored Exception Handler catched; shutting log-core down
[/pawn]
600-603 Linija
[pawn]
mysql_format(DBase, query, sizeof(query), "INSERT INTO `users` (`Ime`, `Lozinka`, `Level`, `Novac`, `Godine`, `Pol` ,`Drzava`, `Email`, `Smrti`, `Ubistva`, `Skin`, `Spawn`, `Banka`, `Racun`, `Zlato`, `Euro`) \
VALUES ('%s', '%s', 1, 25000, '%d', '%d', '%d', '%s', 0, 0, '%d', 1, 0, 0, 0, 100)",
name, PI[playerid][Lozinka], PI[playerid][Godine], PI[playerid][Pol], PI[playerid][Drzava], PI[playerid][Email], PI[playerid][Skin]);
mysql_tquery(DBase, query, "NakonRegistracije", "i", playerid);
[/pawn]
Naslov: Odg: [MySQL] Upisivanje/Izvlacenje podataka iz baze
Poruka od: cofilinko poslato Januar 10, 2024, 15:33:47 POSLE PODNE
Citat: cofilinko poslato Januar 10, 2024, 15:31:18 POSLE PODNE
logs/errors.log
[pawn]
[01/10/24 15:28:56] [plugins/mysql] mysql_format: destination size '256' is too small (C:\Users\Korisnik\Desktop\Old Style RolePlay\gamemodes\osmysql.pwn:601)
[01/10/24 15:28:56] [plugins/mysql] error #1065 while executing query "": Query was empty (C:\Users\Korisnik\Desktop\Old Style RolePlay\gamemodes\osmysql.pwn:603)
[01/10/24 15:28:56] [log-core] exception 0XC0000005 (ACCESS_VIOLATION) from Vectored Exception Handler catched; shutting log-core down
[/pawn]
600-603 Linija
[pawn]
mysql_format(DBase, query, sizeof(query), "INSERT INTO `users` (`Ime`, `Lozinka`, `Level`, `Novac`, `Godine`, `Pol` ,`Drzava`, `Email`, `Smrti`, `Ubistva`, `Skin`, `Spawn`, `Banka`, `Racun`, `Zlato`, `Euro`) \
VALUES ('%s', '%s', 1, 25000, '%d', '%d', '%d', '%s', 0, 0, '%d', 1, 0, 0, 0, 100)",
name, PI[playerid][Lozinka], PI[playerid][Godine], PI[playerid][Pol], PI[playerid][Drzava], PI[playerid][Email], PI[playerid][Skin]);
mysql_tquery(DBase, query, "NakonRegistracije", "i", playerid);
[/pawn]
Osecam se mnogo glupo. Povecao sam broj karaktera u 'query' i sve radi bez problema. Hvala puno svima.
Izvinjavam se.