←  Pytania

AMXX.pl: Support AMX Mod X i SourceMod

»

Pobranie wartości z tabeli MySql

  • +
  • -
ASu - zdjęcie ASu 02.08.2012

jak w pluginie sprawdzic czy np. tabela "test" ma wartosc 1?
Odpowiedz

  • +
  • -
speedkill - zdjęcie speedkill 02.08.2012

Raczej chodziło Ci czy kolumna test ma wartość 1, a nie tabelka ;)
new g_Nick[33][64]
new g_Test[33]

public sql_load(id)
{
    new szTemp[512],data[1]
    data[0] = id
    formatex(szTemp,charsmax(szTemp),"SELECT * FROM `Tabelka` WHERE `nick` = '%s'",g_Nick[id])
    SQL_ThreadQuery(g_SqlTuple,"check",szTemp, data, sizeof(data))
}

public check(failstate, Handle:query, error[],errcode, data[], datasize)
{
    if(failstate != TQUERY_SUCCESS)
    {
        log_amx("<Query> Error: %s", error)
        return
    }
    new id = data[0]

    if(SQL_NumRows(query))
    {
        g_Test[id] = SQL_ReadResult(query, SQL_FieldNameToNum(query,"test"))

        if(g_Test[id] == 1)
            //funkcja(id)
    }
}
w client_authorized musisz pobrać nick gracza do zmiennej globalnej i wywołać sql_load(id), taki pseudokod jak będziesz chciał to podrzucę Ci cały plugin z sprawdzaniem tego itp. ;)
Odpowiedz

  • +
  • -
ASu - zdjęcie ASu 02.08.2012

ale mi nie jest potrzebny nick gracza ani sid czy ip.

Chce poprostu pobrac z tej kolumny "test" wartosc i jesli bedzie na 1 to wykona sie czynnosc

I możesz od razu mi zrobic ta funkcje? tylko passow do tej bazy nie rob na cvarow.
I jeszcze jedno pytanie jak zabespieczyc taka baze przed wyciagniecia hasla itd. z pluginu .amxx
Odpowiedz

  • +
  • -
speedkill - zdjęcie speedkill 02.08.2012

Dałem Ci kod który sprawdza czy kolumna test = 1, u gracza o nicku = uznajmy speedkill, jeżeli jest to wywoła się //funkcja(id) oczywiście jeżeli usuniesz komentarz ( // ). Co do cvarów i zabezpieczenia możesz stworzyć cvar i dodać do niego trzeci parametr FCVAR_PROTECTED
register_cvar("test_host", "localhost", FCVAR_PROTECTED)
Odpowiedz