PDA

Просмотр полной версии : [Вопрос] Запрос в бд на состав



SerVe
19.02.2017, 20:38
new string[70], str[80];
format(string, sizeof(string), "SELECT * FROM `accounts` WHERE `member` = '%d' LIMIT 1",PlayerInfo[playerid[pLeader]);
mysql_query(string);
mysql_store_result();
printf("%s", string);
if(mysql_fetch_row(string))
{
new st2[24];
mysql_get_field("name", st2);
format(str, sizeof(str), "Онлайн\n%s", st2);
SendClientMessage(playerid, -1, str);
}

Мне нужно было сделать чтобы показало кто в онлайне из твоей фракции, а пишет ошибку в консолиhttps://pp.vk.me/c836721/v836721194/29fc2/Dcu-ejS-lD8.jpg

ziggi
19.02.2017, 22:00
В string не влазит результат запроса: либо увеличивай размер string, либо бери из базы только имя.

SerVe
19.02.2017, 22:23
В string не влазит результат запроса: либо увеличивай размер string, либо бери из базы только имя.

а как мне проверить что в моей фракции игрок оффлайн и показать?

SerVe
19.02.2017, 23:13
Сделал вот так:
format(string, sizeof(string), "SELECT * FROM `accounts` WHERE `member` = '%d'", PlayerInfo[playerid][pLeader]);
mysql_query(string);
mysql_store_result();
new rows = mysql_num_rows();
printf("%s", string);
if(mysql_fetch_row(string))
{
while(--rows >= 0)
{
new st2[40],st3[10];
mysql_fetch_field_row(st2, "name");
mysql_fetch_field_row(st3, "status");
printf("%s", st3);

format(str, sizeof(str), "Солдаты :\n%s[%s]", st2, (st3) ? ("Оффлайн"):("Онлайн"));
SendClientMessage(playerid, -1, str);
}
}

Мой ник 2 раза показывает, и пишет оффлайн.

DeimoS
20.02.2017, 11:43
В чём прикол использовать допотопные версии MySQL?


Как-то так:

format(string, sizeof(string), "SELECT name FROM accounts WHERE member = %d", PlayerInfo[playerid][pLeader]);
mysql_query(string);
mysql_store_result();
new name[MAX_PLAYER_NAME],
giveplayerid;

SendClientMessage(playerid, -1, "Солдаты:");
for(new i = mysql_num_rows(); i != -1; --i)
{
mysql_fetch_row(string)
mysql_fetch_field_row(name, "name");

sscanf(name, "u", giveplayerid);

format(str, sizeof(str), "%s [%s]", name, (giveplayerid == INVALID_PLAYER_ID ? ("Оффлайн") : ("Онлайн")));
SendClientMessage(playerid, -1, str);
}