Peršokti į turinį

MYSQL UPDATE QUERY


Recommended Posts

Turiu: 

 

new string[256];
format(string,sizeof(string),"UPDATE `zaidejai` SET `d1` = '%s' WHERE vardas = '%s'", GetPlayerNameEx(playerid));
mysql_query(string);
 
Nesuprantu: '%s' ką reiškia visiškai, taip pat kaip nustatyt d1 lentelę į skaičių 1 pagal žaidėjo vardą. Taip pat kam tas new string[256] ? Galit normaliai paaiškint? 
 
Jeigu nesuprantamai parašiau tai:
 
Man reikia, kad pagal žaidėjo vardą d1 lentelėje nustatytų skaičių : 1.
Nuoroda į komentarą
Dalintis per kitą puslapį

new string[256]; - kintamasais, kuris formatuojamas atlikti mysql užklausą.

%s - https://wiki.sa-mp.com/wiki/Format pasiskaityk specifierius.

Beto su skaičiais naudok speciferi %i arba %d 

Nežinau kaip tu nori ir kam tau reikia d1 nustatyti į vieną, bet jeigu tau reikia ji padaryti būtinai į vieną tai štai užklausa.



format(string,sizeof(string),"UPDATE `zaidejai` SET `d1` = '1' WHERE vardas = '%s'", GetPlayerNameEx(playerid));

Nuoroda į komentarą
Dalintis per kitą puslapį

Tai, pradėsim nuo pradžių. 
"new string[256]" - naujas kintamasis, į kurį talpinsi informaciją. Šiuo atveju kintamasis kuriamas užklausai. 
"%s" - string'as (liet. tekstas). Nemoku detaliau paaiškint, tikiuosi anglų kalbą supranti ir nepatingėsi pasižiūrėti wiki: https://wiki.sa-mp.com/wiki/Format
Dabar, tavo užklausa yra šiek tiek neteisinga, kadangi ant 'd1' eilutės tu nori išgauti žaidėjo vardą (naudojama f-ja GetPlayerNameEx), o vardui niekas neprisikirsta, tai šiuo atveju tavo užklausa nebus įvykdyta, nes jai nėra kur keliauti. Norint, kad užklausa tvarkingai suveiktų, pirmiausia turi turėti kažkokį tai kintamajį tam 'd1', kad jis nusistatytų į 1. Susikurk daleiskim kur nors viršuj savo kode new d1[MAX_PLAYERS]; ir panaudodamas kokią nors tai komandą ar kažką jį nustatyk į 1. Tada tvarkinga užklausa turėtų atrodyt šitaip:
 

format(string,sizeof(string),"UPDATE `zaidejai` SET `d1` = '%i' WHERE vardas = '%s'", d1[playerid],  GetPlayerNameEx(playerid));
mysql_query(string);

Kodėl pakeičiau `d1` = '%s' į `d1` = '%i'? Todėl, nes %i yra skaičius, ir tiesiog naudojant %s tu negausi jokio rezultato, nes %s yra skirtas tekstui. Toliau, po kableliu pridėjau d1[playerid]. Pridėjau todėl, nes norim, kad jo rezultatas atsidurtų %i vietoje. GetPlayerNameEx yra f-ja, sukurta žaidėjo vardui išgauti, kuris atsidurs %s vietoje.  

Gal kažkiek ir padėjau, nežinau, nemoku aš tiesiog viską tiksliai išaiškinti, siūlyčiau pasiskaityti SA:MP Wiki - Scripting Basics/functions, nes matau dar pagrindinius dalykus nelabai kerti ir  jeigu žinoma moki anglų kalbą, jeigu ne, ieškokis lietuviškų pamokų visokių ir pan. pilna įvairiausių video, kurie tikrai naudingi ir gali kažką išmokinti. 

Redaguota , nario Sippan`
  • Teigiamai 1
Nuoroda į komentarą
Dalintis per kitą puslapį

Svečias
Ši tema yra užrakinta.
  • Å iame puslapyje narÅ¡o:   0 nariai

    Nėra registruotų narių peržiūrinčių šį forumą.


×
×
  • Sukurti naują...