Započeo Prcko97
•9. Avg. 2020.MySQL - Osnovne funckije
3,693
pregleda
20
postova
Wheel Man
Balkan SA:MP
SA-MP Doprinos
Balkan SA:MP
SA-MP DoprinosNovi Član
90 / 100 XP
Početnik(0)
30
Postovi:
3
Teme:
Pridružio se:Avg. 2020
9. Avg. 2020.
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 😄
Shot Caller
Balkan SA:MP
SA-MP Doprinos
Balkan SA:MP
SA-MP DoprinosNovi Član
40 / 100 XP
Početnik(0)
106
Postovi:
5
Teme:
Pridružio se:Jun 2020
9. Avg. 2020.
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š
Wheel Man
Balkan SA:MP
SA-MP Doprinos
Balkan SA:MP
SA-MP DoprinosNovi Član
90 / 100 XP
Početnik(0)
30
Postovi:
3
Teme:
Pridružio se:Avg. 2020
9. Avg. 2020.
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 😉
Shot Caller
Balkan SA:MP
SA-MP Doprinos
Balkan SA:MP
SA-MP DoprinosNovi Član
40 / 100 XP
Početnik(0)
106
Postovi:
5
Teme:
Pridružio se:Jun 2020
9. Avg. 2020.
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
Kingpin
Balkan SA:MP
SA-MP Doprinos
Balkan SA:MP
SA-MP DoprinosNovi Član
241 / 250 XP
Početnik(0)
1,344
Postovi:
96
Teme:
Pridružio se:Jun 2012
9. Avg. 2020.
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
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
Wheel Man
Balkan SA:MP
SA-MP Doprinos
Balkan SA:MP
SA-MP DoprinosNovi Član
90 / 100 XP
Početnik(0)
30
Postovi:
3
Teme:
Pridružio se:Avg. 2020
9. Avg. 2020.
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
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 😄
Godfather
Balkan SA:MP
SA-MP Doprinos
Balkan SA:MP
SA-MP DoprinosNovi Član
240 / 250 XP
Početnik(0)
1,514
Postovi:
58
Teme:
Pridružio se:Nov. 2016
9. Avg. 2020.
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 ?
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
"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
Wheel Man
Balkan SA:MP
SA-MP Doprinos
Balkan SA:MP
SA-MP DoprinosNovi Član
90 / 100 XP
Početnik(0)
30
Postovi:
3
Teme:
Pridružio se:Avg. 2020
9. Avg. 2020.
__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 ?
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
"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
Shot Caller
Balkan SA:MP
SA-MP Doprinos
Balkan SA:MP
SA-MP DoprinosNovi Član
40 / 100 XP
Početnik(0)
106
Postovi:
5
Teme:
Pridružio se:Jun 2020
9. Avg. 2020.
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
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?
Shot Caller
Balkan SA:MP
SA-MP Doprinos
Balkan SA:MP
SA-MP DoprinosNovi Član
40 / 100 XP
Početnik(0)
116
Postovi:
2
Teme:
Pridružio se:Avg. 2020
Wheel Man
Balkan SA:MP
SA-MP Doprinos
Balkan SA:MP
SA-MP DoprinosNovi Član
90 / 100 XP
Početnik(0)
30
Postovi:
3
Teme:
Pridružio se:Avg. 2020
9. Avg. 2020.
inquisitiveemmett wrote on August 9, 2020, 9:07 pm:
ime jeste string ali u sqlu se za ime koristi tag %e
wtf?
wtf?
ne vidim sta sam pogresio kada god se trazi igracevo ime ili se upisuje koristi se %e
Shot Caller
Balkan SA:MP
SA-MP Doprinos
Balkan SA:MP
SA-MP DoprinosNovi Član
40 / 100 XP
Početnik(0)
116
Postovi:
2
Teme:
Pridružio se:Avg. 2020
9. Avg. 2020.
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
OG Legend
Balkan SA:MP
SA-MP Doprinos
Balkan SA:MP
SA-MP DoprinosNovi Član
240 / 250 XP
Početnik(0)
2,576
Postovi:
36
Teme:
Pridružio se:Avg. 2016
9. Avg. 2020.
Neka hvala , ipak cu ja starinski raditi , sto je sigurno sigurno je i ako moze jedna kisela , hvala 😉
Godfather
Balkan SA:MP
SA-MP Doprinos
Balkan SA:MP
SA-MP DoprinosNovi Član
240 / 250 XP
Početnik(0)
1,514
Postovi:
58
Teme:
Pridružio se:Nov. 2016
9. Avg. 2020.
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