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

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

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`

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

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

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
[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

600-603 Linija
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);
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
[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

600-603 Linija
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);

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.