MySQL - Osnovne funckije

Započeo Prcko97
pre 5 godina
3,543
pregleda
20
postova
Prcko97
Wheel Man
pre 5 godina
Pozdrav svim clanovima foruma, naime posto zivimo na balkanu jel kasnimo za strancima u svemu pa i u sampu. Htedoh reci i danas mnogo 'skriptera' koristi yini pored mysqla jer im se cini tezak ili im nije dovljno jasan. Potrudicu se da u ovom tutorialu objasnim sve sto je potrebno da neki vas sistem ili ceo mod prebacite u sql ili uradite iz nova, znam da postoji dosta amaterskih tutova kao kako napraviti reg log i tako slicno sto je totalno NEOBJASNJENO, ili za konektovanje baze sto u ovom tutorialu necu pokazivati jer je objasnjeno i svakom normalnom je to jasno  🙂
DA KRENEMO
Osnovne MySQL Funkcije
Osnovne 3 funkcije sa kojima ce te susretati u sql-u jesu:
mysql_format
mysql_tquery
mysql_pquery
Objasnjenje
mysql_format funckija se upotrebljava da bi formatirali upit koji saljete u bazu, primer:
new q; mysql_format(handle, q, sizeof(q), "upit");
mysql_tquery funckija se upotrebljava da bi upit poslali u bazu, primer:
new q; mysql_format(handle, q, sizeof(q), "upit"); mysql_tquery(handle, q);
mysql_pquery funckija se upotrebljava da bi upit posali u bazu, ali za razliku od tquery pquery sluzi za velike querye jer je brzi, primer nije potreban objasnjeno je za t query i skoro pa je slicno.
Vrste Upita i njihovo Upotrebljavanje
Naprimer zelite da unesete podatke u vasu tablicu - kolonu koristite INSERT INTO
new q; mysql_format(handle, q, sizeof(q), "INSERT  INTO `tablica` SET `kolona`= '%d' WHERE `id`= '%d'", var, id); mysql_tquery(handle, q);
Objasnjenje: "tablica" - ime vase tablice, "kolona" ime kolone, var - vredonst varijable koju unosite u kolonu, "id" jedinstveni id kolone
Naprimer zelite da uzmete podatke iz vase tablice - kolonu koristite SELECT * FROM
new q; mysql_format(handle, q, sizeof(q), "SELECT * FROM `tablica`", "callback"); mysql_tquery(handle, q);
Objasnjenje: "tablica" - ime vase tablice, "callback" - callback u kome se uzimaju vrednosti iz tablice (objasni cu kada budem objasnjavao cache funkcije.
Naprimer zelite da apdejtujete kolone u tablici koristite UPDATE
new q; mysql_format(handle, q, sizeof(q), "UPDATE `tablica` SET `kolona`= '%d' WHERE`id`='d' ", var, id); mysql_tquery(handle, q);
Objasnjenje: "tablica" - ime vase tablice, "kolona" - ime kolone "var", - vrednost varijable koju apdejtujete, "id" jedinstveni id kolone.
Naprimer zelite da brisete kolone iz tablice koristite DELETE * FROM
new q; mysql_format(handle, q, sizeof(q), "DELETE * FROM `tablica` WHERE `id`= '%d'", var, id); mysql_tquery(handle, q);
Objasnjenje: "tablica" - ime vase tablice,  "id" - jedinstveni id kolone, brisete igraca,kucu itd - id  iz tablice.
Znaci to su neke osnovne funkcije, imam da dodam jos da "%d" sluzi samo int varijablu za float koristite %f,  za string %s, za ime %e.
CACHE
Sada ide objasnjenje za funkciju SELECT * FROM koju sam rekao da cu objasniti, naime da bi se uzeo bilo koji podatak iz tablice morate u qveriju pozvati callback i u njemu koristite cache funkcije na sledeci nacin:

forward public callback(); //gore sam upisao da ce se callback zvati callback
public callback()
{
    static var1, var2, Float:var3;
    if(cache_num_rows()) //ukoliko kolone postoje
    {
            cache_get_value_name_int(0, "var1", var1); // cache funkcija uzima int "var1" iz table i upisuje ga u "var1" varijablu
            cache_get_value_name(0, "var2", var2, 128); // cache funkcija uzima string "var2" iz table i upisuje ga u "var2" varijablu
            cache_get_value_name_float(0, "var3", var3); // cache funkcija uzima float "var3" iz table i upisuje ga u "var3" varijablu
    }
    return 1;
}

To bi bilo to za ovaj tutorial svaka primedba savet i dodatak su dobrodosli, pucajte 😄
inquisitiveemmett
Shot Caller
pre 5 godina
Ne moraš za svaki query i string koristiti 128  😉, ako koristiš normalan IDE kao npr Sublime Text 3, Visual Studio Code, etc. selektuješ reč, bilo koji tekst i vidiš koliko ima karaktera, toliki string staviš
Prcko97
Wheel Man
pre 5 godina
inquisitiveemmett wrote on August 9, 2020, 8:00 pm:
Ne moraš za svaki query i string koristiti 128  😉, ako koristiš normalan IDE kao npr Sublime Text 3, Visual Studio Code, etc. selektuješ reč, bilo koji tekst i vidiš koliko ima karaktera, toliki string staviš


Ovo je samo primer, sustina je bitna string ne mogao sam staviti i 10000 svako ko ima malo mozga stavlja koliko je potrebno 😉
inquisitiveemmett
Shot Caller
pre 5 godina
Prcko97 wrote on August 9, 2020, 8:01 pm:
Ovo je samo primer, sustina je bitna string ne mogao sam staviti i 10000 svako ko ima malo mozga stavlja koliko je potrebno 😉

Dobro, samo kažem jer sam video da si i u onoj filterskripti koristio za svaki query 128
PWN|Medis
Kingpin
pre 5 godina
Totalno pogrešno objašnjeno tquery i pquery

Tquery - Query se obavljaju jedan za drugim, uz to da se mora čekati da se prvi query odradi pa tek onda ide sljedeći.
Pquery - Query se obavljaju paralelno, npr pošalješ 2 upita u bazu i oba se vrše od jednom bez čekanja jedan na drugi.

Zamijeni to neko će se osloniti na tut i sjebati se
Prcko97
Wheel Man
pre 5 godina
MEDO wrote on August 9, 2020, 8:10 pm:
Totalno pogrešno objašnjeno tquery i pquery

Tquery - Query se obavljaju jedan za drugim, uz to da se mora čekati da se prvi query odradi pa tek onda ide sljedeći.
Pquery - Query se obavljaju paralelno, npr pošalješ 2 upita u bazu i oba se vrše od jednom bez čekanja jedan na drugi.

Zamijeni to neko će se osloniti na tut i sjebati se


Lapsus verovatno sam ja pogresno naucio ili sam yaboravio jer sam posle 3 godine uzeo da pisem nesto u vezi sampa 😄 Sad ce biti zamenjeo ty 😄
Prcko97
Wheel Man
pre 5 godina
🙂
Exnas.pwn
Godfather
pre 5 godina
Uhhh dosta toga je neobjasnjeno mislim da bi bilo pozeljno da si prvo objasnio kako se pise query pa tek onda upotreba u samp skriptanju

"za string %s, za ime %e." 😕
Zar ime nije string ?

cache_get_value_name_int(0, "var1", var1);

Nisi rekao zasto 0 ovde a veoma je vazno, mislim lepo je to sto si napisao tutorijal da pomognes nekome, mozda ces nekome i pomoci ne kazem, ali daj prvo procitaj neku dokumentaciju nmj ove gluposti da lupas sa pquery i tquery, jer neko ce mozda pogresno nauciti
Prcko97
Wheel Man
pre 5 godina
__vedran.xyz77 wrote on August 9, 2020, 8:57 pm:
Uhhh dosta toga je neobjasnjeno mislim da bi bilo pozeljno da si prvo objasnio kako se pise query pa tek onda upotreba u samp skriptanju

"za string %s, za ime %e." 😕
Zar ime nije string ?

cache_get_value_name_int(0, "var1", var1);

Nisi rekao zasto 0 ovde a veoma je vazno, mislim lepo je to sto si napisao tutorijal da pomognes nekome, mozda ces nekome i pomoci ne kazem, ali daj prvo procitaj neku dokumentaciju nmj ove gluposti da lupas sa pquery i tquery, jer neko ce mozda pogresno nauciti


ime jeste string ali u sqlu se za ime koristi tag %e
sto se tice te 0 stavio sam je jer nism radio u modu i nemam varijable koje bi mogao tu iskoristiti, uopsteno loop prolazi kroz npr maksimalan broj kuca (for new i itd..) i onda umesto 0 pises i
inquisitiveemmett
Shot Caller
pre 5 godina
Prcko97 wrote on August 9, 2020, 9:03 pm:
ime jeste string ali u sqlu se za ime koristi tag %e
sto se tice te 0 stavio sam je jer nism radio u modu i nemam varijable koje bi mogao tu iskoristiti, uopsteno loop prolazi kroz npr maksimalan broj kuca (for new i itd..) i onda umesto 0 pises i

ime jeste string ali u sqlu se za ime koristi tag %e
wtf?
Alhemičar v2
Shot Caller
pre 5 godina
Lockaj temu, došlo je do toga da ja moram jebeni SQL tutorial otvoriti
Prcko97
Wheel Man
pre 5 godina
inquisitiveemmett wrote on August 9, 2020, 9:07 pm:
ime jeste string ali u sqlu se za ime koristi tag %e
wtf?

ne vidim sta sam pogresio kada god se trazi igracevo ime ili se upisuje koristi se %e
Alhemičar v2
Shot Caller
pre 5 godina
Prcko97 wrote on August 9, 2020, 9:10 pm:
ne vidim sta sam pogresio kada god se trazi igracevo ime ili se upisuje koristi se %e

%e se koristi kao zaštita od SQL Injectiona, %e automatski escape-a string i samim tim neko ne može da izmanipuliše upit koji se šalje serveru

Isuse bože, objašnjavaš nešto što ne znaš

%e se uvek koristi kod onoga što sam igrač upisuje, bespotrebno je ako recimo hashuješ password da staviš %e kao većina
Vincenzo_Peruggia
OG Legend
pre 5 godina
Neka hvala , ipak cu ja starinski raditi , sto je sigurno sigurno je i ako moze jedna kisela , hvala 😉
Exnas.pwn
Godfather
pre 5 godina
Prcko97 wrote on August 9, 2020, 9:10 pm:
ne vidim sta sam pogresio kada god se trazi igracevo ime ili se upisuje koristi se %e

Ne budi tako siguran pls  🙄

Morate biti prijavljeni da biste odgovorili na ovu temu.

Prijava