Вывод айдишника по steamid

Kapitar

Участник
Сообщения
16
Реакции
0
C-подобный:
#include <sourcemod>

new Handle:DB = INVALID_HANDLE;

public Plugin:myinfo = {
    name = "ID",
    author = "Kapitar",
    description = "ID plugin",
    url = ""
};

public OnPluginStart() {

    new String:Error[70]
    DB = SQL_Connect("IdSystem", true, Error, sizeof(Error));
    if(DB == INVALID_HANDLE) {
        PrintToServer("[ID] Cannot connect to MySQL Server: %s", Error);
        CloseHandle(DB)
    }
    else {
        PrintToServer("[ID] Connection successful");
    }


    RegConsoleCmd("sm_id", Command_ID, "RankMe: Shows your rank");
}

public OnClientConnected(client) {
    new String:steamid[32];
    GetClientAuthString(client, steamdid, 32);

    new String:query[150];
    new Handle:query = INVALID_HANDLE;

    Format(query, sizeof(query), "SELECT * FROM 'idplayers' WHERE steamid ='%s'", steamid);       
    new Handle:result = SQL_Query(DB, query);
    if(!SQL_FetchRow(result)) {   // не нашел ни одной строки
        Format(query, sizeof(query), "INSERT INTO idplayers (steamid, rank, priv) VALUES ('%s', '%i', %s)", steamid, 0, 'player');
    }
}

public Action:Command_ID(client) {
    new String:steamid[32];
    GetClientAuthString(client, steamdid, 32);

    new String:query[150];

    Format(query, sizeof(query), "SELECT * FROM 'idplayers' WHERE steamid ='%s'", steamid);
    PrintToChatAll("[!id] ")   

}
Не знаю как выводить айдишник автоинкримент который создает mysql
Если стимайди не нашелся то создается новый айди с стимайди новым
 

Kruzya

Участник
Сообщения
12,970
Реакции
10,914
  • Команда форума
  • #4
А можно попонятнее и поподробнее?
Ну Вы в результате запроса получаете хендл с результатами. Если тип хендла - DBResultSet, получаете свойство у него InsertId.
В противном случае, SQL_GetInsertId()
 

Kapitar

Участник
Сообщения
16
Реакции
0

Kruzya

Участник
Сообщения
12,970
Реакции
10,914
  • Команда форума
  • #6
C-подобный:
// пример на SQL_Query()
// хотя его не стоит использовать, он провоцирует фризы
//
// вариант с SQL_TQuery() не сильно будет отличаться, кроме
// того, что результат полетит в переданную функцию, когда
// он будет готов.
new Handle:hQuery = SQL_Query(g_hDatabase, "INSERT INTO ...");
if (hQuery)
{
    new iId = SQL_GetInsertId(hQuery);
    // в iId помещён автоинкрементный индекс, который
    // получила запись в результате запроса
}
 

Kapitar

Участник
Сообщения
16
Реакции
0
C-подобный:
// пример на SQL_Query()
// хотя его не стоит использовать, он провоцирует фризы
//
// вариант с SQL_TQuery() не сильно будет отличаться, кроме
// того, что результат полетит в переданную функцию, когда
// он будет готов.
new Handle:hQuery = SQL_Query(g_hDatabase, "INSERT INTO ...");
if (hQuery)
{
    new iId = SQL_GetInsertId(hQuery);
    // в iId помещён автоинкрементный индекс, который
    // получила запись в результате запроса
}
А так как сделать вывод
Сообщения автоматически склеены:

И зачем insert into?
 

Kruzya

Участник
Сообщения
12,970
Реакции
10,914
  • Команда форума
  • #8
А так как сделать вывод
Зависит от того, куда. PrintToChat(), PrintToConsole() и многие другие функции у Вас никто не отбирает.

Не знаю как выводить айдишник автоинкримент который создает mysql
Как я понял из Вашего вопроса, Вам нужно внести запись в базу и получить тут же итоговый айди, который был создан базой.
Если Вам нужно получить у записи из базы, которая внесена когда-то - код будет другим. SQL_FetchRow() в связке с SQL_FetchInt().
 

Kapitar

Участник
Сообщения
16
Реакции
0
Зависит от того, куда. PrintToChat(), PrintToConsole() и многие другие функции у Вас никто не отбирает.



Как я понял из Вашего вопроса, Вам нужно внести запись в базу и получить тут же итоговый айди, который был создан базой.
Если Вам нужно получить у записи из базы, которая внесена когда-то - код будет другим. SQL_FetchRow() в связке с SQL_FetchInt().
Мне нужно чтобы когад человек заходил на сервер проверялось есть ли он в бд по стим айди если нет то записать
Потом если человек вызывает !id то выводит его айди в чат
Сообщения автоматически склеены:

И я не особо понимаю как вывести в чат именно айди
 
Сверху Снизу