28.10.2014, 15:11
Добрый день! Сделал мод на MySQL на основе другого. Все нормально работает, только вот..
Вот часть кода из того мода:
mysql_function_query(connects, mysql_query, true, "", ""); - не вызывает никаких пабликов, т.е. узнает есть ли строка с таким именем...
А вот мой код:
Пишет, что нет аккаунта...
Т.е. не узнает `activate `!
Как я это понял? - В сохранении сделал такой вот запрос:
В итоге сохраняется число 0, т.е. activate не узнает, а значит что-то не так работает с
Сохраняет аккаунт НОРМАЛЬНО!
Просто объясните, как можно сделать запрос, при этом узнать сколько строк выделено с данным условием
Вот часть кода из того мода:
Код:
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);
А вот мой код:
Код:
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]);
Код:
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, "", "");

