PDA

Просмотр полной версии : [Вопрос] Запрос на выгрузку одного значения из MySQL



DmX
20.10.2015, 18:46
mysql_format(MYSQL_ARG, asd, sizeof(asd), "INSERT INTO `family` (`Name`,`Naz`,`Tag`) VALUES ('%s', '%s', '%s')",PlayerInfo[playerid][pName],FAMIN,inputtext);
mysql_function_query(MYSQL_ARG, asd, false, "", "");
//
mysql_format(MYSQL_ARG, asd, sizeof(asd), "SELECT `Name` FROM `family` WHERE BINARY `ID` = '%d'", PlayerInfo[playerid][pFam]);
mysql_function_query(MYSQL_ARG, asd, true, "FamGO","dd", playerid,);


Создается семья, ид AI выдается в базе каждой семье. Мне нужно присвоить аккаунту ID семьи. Я не пойму как запрос сделать.


publics: FamGO(playerid)
{
new rows, fields,asd[264];
cache_get_data(rows, fields);

PlayerInfo[playerid][pFam] = ;
mysql_format(MYSQL_ARG, asd, sizeof(asd),"UPDATE `Account` SET `Fam` = '%d' WHERE BINARY `Name` = '%s'",
PlayerInfo[playerid][pFam],
PlayerInfo[playerid][pName]);
mysql_function_query(MYSQL_ARG, asd, false, "", "");
DeletePVar(playerid,"FAMILY");

mysql_free_result();
return true;
}

$continue$
20.10.2015, 19:19
То есть Вам нужно получить AI?

cache_insert_id (http://wiki.sa-mp.com/wiki/MySQL/R33#cache_insert_id)

DmX
20.10.2015, 21:35
Да, и дать значение игроку

- - - Добавлено - - -

Можешь на моём вопросе показать пример?

$continue$
20.10.2015, 23:14
Как то так, наверное:


static const str[] = "INSERT INTO `family` (`Name`,`Naz`,`Tag`) VALUES ('%e', '%e', '%e')";
new fmt_str[sizeof(str) - 6];
mysql_format(MYSQL_ARG, fmt_str, sizeof(fmt_str), str, PlayerInfo[playerid][pName], FAMIN, inputtext);
mysql_function_query(MYSQL_ARG, fmt_str, true, "callback_ai_insert", "d", playerid);



forward callback_ai_insert(id_player);
public callback_ai_insert(id_player)
{
PlayerInfo[playerid][pFam] = cache_insert_id();
}

DmX
21.10.2015, 03:15
Я принимаю игрока в семью, ему дается значение, как сделать так, что бы ему еще дались значения, только выгрузить данные с другой таблицы?

То есть, у него переменная pFam равна как и у меня, и как у AI в той таблице, с которой я буду брать данные.

- - - Добавлено - - -

И еще, как мне сделать?
Вот название семьи записаны в таблице family

pFam у меня 2, а в таблице family AI 2

Как мне от туда взять название семьи и вывести на экран?


new asd[24];
format(asd,sizeof(asd),"",);
SCM(playerid,COLOR_OFF, asd);
Можешь объяснить? :)

DmX
22.10.2015, 19:39
UP!!!

Blood
24.10.2015, 17:38
Если я тебя понял , то как-то так


///макросы
#define SQL_CONNECTS (connects)
#define TABLE_FRAC (family)
#define COLUMN_FRAC_NAME (fracName)
#define COLUMN_FRAC_ID (id)
#define PlayerMember(%0) (PlayerInfo[%0][pFam])
CMD:test(playerid,params[])
{
static const ustring[] = {"SELECT `"COLUMN_FRAC_NAME"` FROM `"TABLE_FRAC"` WHERE `"COLUMN_FRAC_ID"` = '%i'"};
new xstring[sizeof(ustring)+3];
mysql_format(SQL_CONNECTS, xstring, sizeof(xstring),ustring, PlayerMember(playerid));
mysql_function_query(SQL_CONNECTS, xstring, true, "FexitFracName","d", playerid);
return 1;
}
forward FexitFracName(playerid);
public FexitFracName(playerid)
{
new rows, fields;
cache_get_data(rows, fields);
if(rows)
{
new fracname[25],xstring[16+25];
cache_get_field_content(0, ""COLUMN_FRAC_NAME"",fracname,SQL_CONNECTS,25);
format(xstring,sizeof(xstring),"Название Фракции %s",fracname);
SendClientMessage(playerid,-1,xstring);
}
return 1;
}