-
Возврат запроса
Здравствуйте, битый час думаю как сделать..
Для удобства мне нужно сделать так:
При вводе команды проверялось есть ли бизнес у игрока или нет, через запрос в базу данных.
PHP код:
else if(strcmp(cmd, "/edit", true) == 0)
{
if(!IsAPersona(playerid, biz)) return send(playerid, COLOR_GREY, "Вы не владеете бизнесом.");
}
Запрос
PHP код:
stock IsAPersona(playerid, biz)
{
mysql_format(connects,str_send[playerid], MAX_STRING,"SELECT `BizID`,`MysqlID` FROM `StaffBiznes` WHERE BizID = '%i' AND `MysqlID` = '%i'",biz, Player[playerid][pMysqlID]);
return mysql_function_query(connects, str_send[playerid], true, "IsAPersona_Mysql","d", playerid);
}
паблик запроса
PHP код:
publics IsAPersona_Mysql(playerid)
{
str_send[playerid][0]=0;
static rows, fields;
cache_get_data(rows, fields);
if(rows) return true;
return false;
}
Код не работает, потому что mysql_function_query возвращает всегда 1.
Каким образом я могу сделать, чтобы у меня возвращало определенное значение, если есть бизнес или нет.
Да я знаю, что нужно делать действие в запросе в (rows), но это запутает только.
-
На сколько я знаю, то таким способом вы не добьётесь возвращения в место вызова, придётся использовать вот так:
PHP код:
else if(strcmp(cmd, "/edit", true) == 0)
{
IsAPersona(playerid, biz);
return true;
}
stock IsAPersona(playerid, biz)
{
mysql_format(connects,str_send[playerid], MAX_STRING,"SELECT `BizID`,`MysqlID` FROM `StaffBiznes` WHERE BizID = '%i' AND `MysqlID` = '%i'",biz, Player[playerid][pMysqlID]);
return mysql_function_query(connects, str_send[playerid], true, "IsAPersona_Mysql","d", playerid);
}
publics IsAPersona_Mysql(playerid)
{
str_send[playerid][0]=0;
static rows, fields;
cache_get_data(rows, fields);
if(rows) return true;
return send(playerid, COLOR_GREY, "Вы не владеете бизнесом.");
}
-
Цитата:
Сообщение от
Mazzilla
На сколько я знаю, то таким способом вы не добьётесь возвращения в место вызова, придётся использовать вот так:
PHP код:
else if(strcmp(cmd, "/edit", true) == 0)
{
IsAPersona(playerid, biz);
return true;
}
stock IsAPersona(playerid, biz)
{
mysql_format(connects,str_send[playerid], MAX_STRING,"SELECT `BizID`,`MysqlID` FROM `StaffBiznes` WHERE BizID = '%i' AND `MysqlID` = '%i'",biz, Player[playerid][pMysqlID]);
return mysql_function_query(connects, str_send[playerid], true, "IsAPersona_Mysql","d", playerid);
}
publics IsAPersona_Mysql(playerid)
{
str_send[playerid][0]=0;
static rows, fields;
cache_get_data(rows, fields);
if(rows) return true;
return send(playerid, COLOR_GREY, "Вы не владеете бизнесом.");
}
А если после проверки мне нужно выполнить действие, допустим вывести диалог, где будут настройки.
-
Вместо
PHP код:
return send(playerid, COLOR_GREY, "Вы не владеете бизнесом.");
и будут действия.
-
Цитата:
Сообщение от
Mazzilla
Вместо
PHP код:
return send(playerid, COLOR_GREY, "Вы не владеете бизнесом.");
и будут действия.
Спасибо, но вы 1 пост читали, мне нужно чтобы все действия были в команде /edit.
-
Если версия mysql-плагина R33+
PHP код:
stock IsAPersona(playerid, biz) {
mysql_format(connects,str_send[playerid], MAX_STRING,"SELECT `BizID`,`MysqlID` FROM `StaffBiznes` WHERE BizID = '%i' AND `MysqlID` = '%i'",biz, Player[playerid][pMysqlID]);
new Cache:result = mysql_query(connects, str_send[playerid], true);
str_send[playerid] = 0;
new rtrn = cache_get_row_count() > 0 ? (1) : (0);
cache_delete(result);
return rtrn;
}