[MySQL] Upisivanje/Izvlacenje podataka iz baze

Započeo cofilinko, Januar 08, 2024, 19:24:17 POSLE PODNE

prethodna tema - sledeća tema

0 članova i 1 gost pregledaju ovu temu.

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?
Poslednja Izmena: Januar 08, 2024, 19:26:40 POSLE PODNE od cofilinko
Aj napuni pun i vozi odavde,
na autoput u najveci krug,
da najbolje razmislim ko mi je drug.

`Zlato`, `Euro`
Upwork Skills
Back-end:
• PHP Frameworks (Laravel, Symfony,Codeigniter)
• Python/Django
• Node.js

Front-end:
• HTML
• CSS pre-processing (SASS, LESS)
• Javascript (JQuery, Ajax, Vue, Angular, React, etc.)
• Bootstrap

CMS
• Wordpress (Woocommerce)
• Shopify, Magento

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`

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.
Aj napuni pun i vozi odavde,
na autoput u najveci krug,
da najbolje razmislim ko mi je drug.

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
Aj napuni pun i vozi odavde,
na autoput u najveci krug,
da najbolje razmislim ko mi je drug.

Bump
Aj napuni pun i vozi odavde,
na autoput u najveci krug,
da najbolje razmislim ko mi je drug.

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);

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]
Poslednja Izmena: Januar 10, 2024, 15:32:19 POSLE PODNE od cofilinko
Aj napuni pun i vozi odavde,
na autoput u najveci krug,
da najbolje razmislim ko mi je drug.

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.
Aj napuni pun i vozi odavde,
na autoput u najveci krug,
da najbolje razmislim ko mi je drug.