Помогите с MySQL r7 -
Daea - 28.10.2014
Добрый день! Сделал мод на MySQL на основе другого. Все нормально работает, только вот..
Вот часть кода из того мода:
Код:
cache_get_data(rows, fields);
format(mysql_query, sizeof(mysql_query), "SELECT * FROM `Accounts` WHERE `Name` = '%s'", akk);
mysql_function_query(connects, mysql_query, true, "", "");
if(!rows) return SendMes(playerid, COLOR_GREY, "[ MySql ] Аккаунт %s не найден в базе данных.",akk);
cache_get_field_content(0, "pLocked2", banned2);
mysql_function_query(connects, mysql_query, true, "", ""); - не вызывает никаких пабликов, т.е. узнает есть ли строка с таким именем...
А вот мой код:
Код:
for(new id = 0; id < AllNames; id++)
{
if(strlen(Names[id]) > 5)
{
new rows, fields,tmpz[4],activate,sn[MAX_PLAYER_NAME];
mysql_real_escape_string(Names[id], sn);
cache_get_data(rows, fields);
format(stringx, sizeof(stringx), "SELECT * FROM `accountz` WHERE `Name` = '%s'",sn);
mysql_function_query(connects, stringx, true, "", "");
if(!rows) continue;
else
{
cache_get_field_content(0, "Activate", tmpz);
activate = strval(tmpz);
if(activate != 5) continue;
format(stringx, 80, "{33CCFF}Игрок №%d:\t{ffffff}%s\n",indicator+1,Names[id]);
strcat(stringsg, stringx);
ShowPlayerPlayers[playerid][indicator] = id;
indicator++;
playerrega = true;
}
}
}
Пишет, что нет аккаунта...
Т.е. не узнает `activate `!
Как я это понял? - В сохранении сделал такой вот запрос:
Код:
new str[4096],tmp[4];
format(str, 80, "SELECT * FROM `accountz` WHERE `ID` = '%d'",PlayerInfo[playerid][pID]);
mysql_function_query(connects, str, true, "", "");
cache_get_field_content(0, "Activate", tmp);
new activate = strval(tmp);
mysql_format(connects,str,sizeof(str),"UPDATE `accountz` SET `pPhousekey` = '%d',`pGaragekey` = '%d',`pSpawn` = '%d',`pBootle` = '%d',`pPayTime` = '%d',`pPassportnum` = '%d',`pSitosti` = '%f',`pJajda` = '%d',`pLevel` = '%d',`pGigiena` = '%d', ",
PlayerInfo[playerid][pPhousekey],PlayerInfo[playerid][pGaragekey],PlayerInfo[playerid][pSpawn],PlayerInfo[playerid][pBootle],PlayerInfo[playerid][pPayTime],
PlayerInfo[playerid][pPassportnum],PlayerInfo[playerid][pSitosti],PlayerInfo[playerid][pJajda],PlayerInfo[playerid][pLevel], PlayerInfo[playerid][pGigiena]);
В итоге сохраняется число 0, т.е. activate не узнает, а значит что-то не так работает с
Код:
cache_get_data(rows, fields);
format(stringx, sizeof(stringx), "SELECT * FROM `accountz` WHERE `Name` = '%s'",sn);
Сохраняет аккаунт НОРМАЛЬНО!
Просто объясните, как можно сделать запрос, при этом узнать сколько строк выделено с данным условием
Код:
mysql_real_escape_string(Names[id], sn);
cache_get_data(rows, fields);
format(stringx, sizeof(stringx), "SELECT * FROM `accountz` WHERE `Name` = '%s'",sn);
mysql_function_query(connects, stringx, true, "", "");
Re: Помогите с MySQL r7 -
Daea - 28.10.2014
Вы вообще поняли, что нужно то?
Тогда еще кратче...
Можно ли посылать запрос и узнать количество строк кеша, без вызова паблика?...
Код:
cache_get_data(rows, fields);
format(stringx, sizeof(stringx), "SELECT * FROM `accountz` WHERE `Name` = '%s'",sn);
mysql_function_query(connects, stringx, true, "", "");
Re: Помогите с MySQL r7 -
Daea - 28.10.2014
Код:
publics:OnPlayerLogin(playerid,password[])
{
new rows, fields, maximum[68],mysql_query[256],string[63];
cache_get_data(rows, fields);
if(!rows)
{
new LOLTEST;
format(mysql_query, sizeof(mysql_query), "SELECT * FROM `accountz` WHERE `ID` = '%d'",PlayerInfo[playerid][pID]);
mysql_function_query(connects, mysql_query, true, "", "");
cache_get_field_content(0, "LogTries", maximum);
LOLTEST = strval(maximum);
new logtires = 3-LOLTEST;
format(string,63,"{ff2400}Вы ввели неверный пароль!\nУ вас осталось (%d) попытки",logtires);
SCM(playerid,-1,string);
LOLTEST++;
format(mysql_query, sizeof(mysql_query), "UPDATE `accountz` SET `LogTries` = '%d' WHERE `ID` = '%d'",LOLTEST,PlayerInfo[playerid][pID]);
mysql_function_query(connects, mysql_query, false, "", "");
if(LOLTEST >= 4) return AddBan(playerid, PlayerInfo[playerid][pName], "БАНИЛКА",0,5,"Неверный пароль");
return true;
}
//дальнейшая загрузка...
Вот как, например, сделать тут?
OnPlayerLogin - паблик, который вызывается через mysql_function_query
Re: Помогите с MySQL r7 -
Urukhay - 29.10.2014
PHP код:
new string; // строка с MySQL запросом
new row; // переменная для хранения количества строк
mysql_query(connect,string); // connect - переменная подключения
row = cache_num_rows();
printf("Запрос вернул %d строк.",row);
Re: Помогите с MySQL r7 -
Daea - 29.10.2014
Но ведь запросы не так посылаются