Problemă salvare în MySQL

Tutoriale scripting, cod si portiuni de cod.

Moderators: Moderatori ajutatori, Moderatori, Echipa eXtreamCS.com

User avatar
Xeno985
Membru, skill +1
Membru, skill +1
Posts: 206
Joined: 05 Jul 2017, 22:07
Detinator Steam: Da
CS Status: Disponibil, doar cand sunt acasa.
Detinator server CS: Nu
SteamID: 512916512916
Reputatie: Membru Club eXtreamCS (28 Jan - 28 Feb)
Fond eXtream: 0
Location: 127.0.0.1
Discord: nvF4B8A
Has thanked: 12 times
Been thanked: 4 times
Contact:

15 Jan 2021, 17:43

EnTeR_ wrote:
15 Jan 2021, 12:00
Xeno985 wrote:
14 Jan 2021, 02:40
The Kalu wrote:
09 Sep 2020, 20:18

Code: Select all

CREATE TABLE IF NOT EXISTS points (id INT NOT NULL AUTO_INCREMENT, steamid VARCHAR (32) NOT NULL, points INT, PRIMARY KEY (id))

Code: Select all

SELECT id, steamid, points FROM points WHERE steamid = '%s'

Code: Select all

UPDATE points SET points = '%i' WHERE steamid = '%s'

Inlocuiesti si revino cu un raspuns.
Pentru a NU reseta punctele, mai putem face si asa

Code: Select all

UPDATE points SET points = points + '%i' WHERE steamid = '%s'
Adica updatam coloana points cu punctele curente + celelalte adunate

P.S.: Kalu, ti-am dat tie quote ca ai scris ok astea si este mai usor :face_unequal_eyes:
Păi si nu o sa le dubleze ? "points" = punctele salvate + variabila care retine numărul total.
Iar daca consum toate punctele si ma reconectez pe sv o sa le am inapoi. Depinde la ce event se face salvarea, dar oricum nu e "safe".
Pentru a NU reseta punctele, mai putem face si asa
Cred ca am mentionat sa nu se mai reseteze punctele...
dar oricum nu e "safe".
Despre "safe", consider ca este safe ambele variante, ca pun baza de date sa imi calculeze punctele si sa le salveze sau pun pluginul este acelasi lucru, dar punand baza de date, practic te salvezi pe tine de niste munca in plus degeaba :crazy_face:
Iar daca consum toate punctele si ma reconectez pe sv o sa le am inapoi.
Nu, nu se va intampla, asta daca functia ce "consuma" punctele si updateaza coloana din database :info_desk:
Păi si nu o sa le dubleze ? "points" = punctele salvate + variabila care retine numărul total.
Renunti la a mai calcula punctele in plugin si ii dai acest drept bazei de date, pana la urma asta te scapa si de munca in plus pentru ca nu mai salvezi intr-un fisier ca sa trebuiasca sa le calculezi tu iar, nu? :hand_to_chin:

Lucrul cu baza de date trebuie sa fie cat mai "clean" atat in cod cat si in comanda ce i-o trimiti bazei de date, de asemenea, sintaxa cat mai corecta a comenzii catre baza de date ar urma asa:

Code: Select all

"UPDATE `tabel` SET `tabel`.`coloana` = 'valoare', `table`.`coloana2` = 'valoare2';"
Tine cont de ghilimele, mai ales cand ai texte cu spatii pentru a prevenii erorile (bug-uri) :listless: :-c :closed_lips:
👉 Panel Counter-Strike: Click. 👈
👉💎 Shop: Click. 💎👈
👉💻 Filme: Click. 💻👈
👉📧 Contact: Steam 📧👈
RoyalServer
User avatar
EnTeR_
Membru, skill +2
Membru, skill +2
Posts: 577
Joined: 13 Sep 2014, 16:36
Detinator Steam: Da
Fond eXtream: 0
Has thanked: 3 times
Been thanked: 29 times

15 Jan 2021, 19:10

Xeno985 wrote:
15 Jan 2021, 17:43
Pentru a NU reseta punctele, mai putem face si asa
Cred ca am mentionat sa nu se mai reseteze punctele...
dar oricum nu e "safe".
Despre "safe", consider ca este safe ambele variante, ca pun baza de date sa imi calculeze punctele si sa le salveze sau pun pluginul este acelasi lucru, dar punand baza de date, practic te salvezi pe tine de niste munca in plus degeaba :crazy_face:
Iar daca consum toate punctele si ma reconectez pe sv o sa le am inapoi.
Nu, nu se va intampla, asta daca functia ce "consuma" punctele si updateaza coloana din database :info_desk:
Păi si nu o sa le dubleze ? "points" = punctele salvate + variabila care retine numărul total.
Renunti la a mai calcula punctele in plugin si ii dai acest drept bazei de date, pana la urma asta te scapa si de munca in plus pentru ca nu mai salvezi intr-un fisier ca sa trebuiasca sa le calculezi tu iar, nu? :hand_to_chin:

Lucrul cu baza de date trebuie sa fie cat mai "clean" atat in cod cat si in comanda ce i-o trimiti bazei de date, de asemenea, sintaxa cat mai corecta a comenzii catre baza de date ar urma asa:

Code: Select all

"UPDATE `tabel` SET `tabel`.`coloana` = 'valoare', `table`.`coloana2` = 'valoare2';"
Tine cont de ghilimele, mai ales cand ai texte cu spatii pentru a prevenii erorile (bug-uri) :listless: :-c :closed_lips:
Tu probabil stii ce vorbesti aici dar mie imi da cu virgula, ori asta, ori nu suntem pe acelasi subiect :boundlessly_laughing:

Ma refeream la chestiuta asta:

UPDATE points SET points = points + '%i' WHERE steamid = '%s'

In capul meu este ca daca as avea 100 puncte ar veni ceva de genul:

UPDATE points SET points = 100 + '100' WHERE steamid = '%s'

Iar legat de calculatul in plugin, nu e nimic de calculat, pur si simplu preiei punctele printr-o variabila si ii cresti/scazi valoarea, dupa care salvezi. Ex:

Points [id] = SQL_ReadResult ( Query, SQL_FieldNameToNum ( Query, "points" ) );
Discord: eyekon13
User avatar
Xeno985
Membru, skill +1
Membru, skill +1
Posts: 206
Joined: 05 Jul 2017, 22:07
Detinator Steam: Da
CS Status: Disponibil, doar cand sunt acasa.
Detinator server CS: Nu
SteamID: 512916512916
Reputatie: Membru Club eXtreamCS (28 Jan - 28 Feb)
Fond eXtream: 0
Location: 127.0.0.1
Discord: nvF4B8A
Has thanked: 12 times
Been thanked: 4 times
Contact:

15 Jan 2021, 20:08

EnTeR_ wrote:
15 Jan 2021, 19:10
Xeno985 wrote:
15 Jan 2021, 17:43
Pentru a NU reseta punctele, mai putem face si asa
Cred ca am mentionat sa nu se mai reseteze punctele...
dar oricum nu e "safe".
Despre "safe", consider ca este safe ambele variante, ca pun baza de date sa imi calculeze punctele si sa le salveze sau pun pluginul este acelasi lucru, dar punand baza de date, practic te salvezi pe tine de niste munca in plus degeaba :crazy_face:
Iar daca consum toate punctele si ma reconectez pe sv o sa le am inapoi.
Nu, nu se va intampla, asta daca functia ce "consuma" punctele si updateaza coloana din database :info_desk:
Păi si nu o sa le dubleze ? "points" = punctele salvate + variabila care retine numărul total.
Renunti la a mai calcula punctele in plugin si ii dai acest drept bazei de date, pana la urma asta te scapa si de munca in plus pentru ca nu mai salvezi intr-un fisier ca sa trebuiasca sa le calculezi tu iar, nu? :hand_to_chin:

Lucrul cu baza de date trebuie sa fie cat mai "clean" atat in cod cat si in comanda ce i-o trimiti bazei de date, de asemenea, sintaxa cat mai corecta a comenzii catre baza de date ar urma asa:

Code: Select all

"UPDATE `tabel` SET `tabel`.`coloana` = 'valoare', `table`.`coloana2` = 'valoare2';"
Tine cont de ghilimele, mai ales cand ai texte cu spatii pentru a prevenii erorile (bug-uri) :listless: :-c :closed_lips:
Tu probabil stii ce vorbesti aici dar mie imi da cu virgula, ori asta, ori nu suntem pe acelasi subiect :boundlessly_laughing:

Ma refeream la chestiuta asta:

UPDATE points SET points = points + '%i' WHERE steamid = '%s'

In capul meu este ca daca as avea 100 puncte ar veni ceva de genul:

UPDATE points SET points = 100 + '100' WHERE steamid = '%s'

Iar legat de calculatul in plugin, nu e nimic de calculat, pur si simplu preiei punctele printr-o variabila si ii cresti/scazi valoarea, dupa care salvezi. Ex:

Points [id] = SQL_ReadResult ( Query, SQL_FieldNameToNum ( Query, "points" ) );
UPDATE points SET points = 100 + '100' WHERE steamid = '%s'
Exact, asta va face acea sintaxa
Iar legat de calculatul in plugin, nu e nimic de calculat, pur si simplu preiei punctele printr-o variabila si ii cresti/scazi valoarea, dupa care salvezi.
Da, isi in loc sa mai faci asta, doar preiei punctele ce sunt facute de player si le updatezi in baza de date, izi
👉 Panel Counter-Strike: Click. 👈
👉💎 Shop: Click. 💎👈
👉💻 Filme: Click. 💻👈
👉📧 Contact: Steam 📧👈
User avatar
EnTeR_
Membru, skill +2
Membru, skill +2
Posts: 577
Joined: 13 Sep 2014, 16:36
Detinator Steam: Da
Fond eXtream: 0
Has thanked: 3 times
Been thanked: 29 times

15 Jan 2021, 20:35

Ah, am inteles acuma! :kiss_smiley:
Discord: eyekon13
Post Reply

Return to “Scripting”

  • Information
  • Who is online

    Users browsing this forum: No registered users and 8 guests