PDA

Просмотр полной версии : [Вопрос] mysql



GodFather
24.05.2014, 10:01
Загрузка фракций

public OnFractionsLoad()
{
new time = GetTickCount();
new temp[32],rows,fields,frac;
cache_get_data(rows,fields);
if(rows)
{
for(new idx = 1; idx <= rows; idx++)
{
cache_get_field_content(idx-1,"newid",temp,MYSQL_ARG), LeaderInfo[idx][lID] = strval(temp);
cache_get_field_content(idx-1,"leader",LeaderInfo[idx][lLeader],MYSQL_ARG,36);
cache_get_field_content(idx-1,"fraction",LeaderInfo[idx][lName],MYSQL_ARG,36);
cache_get_field_content(idx-1,"lRank1",LeaderInfo[idx][lRank1],MYSQL_ARG,36);
cache_get_field_content(idx-1,"lRank2",LeaderInfo[idx][lRank2],MYSQL_ARG,36);
cache_get_field_content(idx-1,"lRank3",LeaderInfo[idx][lRank3],MYSQL_ARG,36);
cache_get_field_content(idx-1,"lRank4",LeaderInfo[idx][lRank4],MYSQL_ARG,36);
cache_get_field_content(idx-1,"lRank5",LeaderInfo[idx][lRank5],MYSQL_ARG,36);
cache_get_field_content(idx-1,"lRank6",LeaderInfo[idx][lRank6],MYSQL_ARG,36);
cache_get_field_content(idx-1,"lRank7",LeaderInfo[idx][lRank7],MYSQL_ARG,36);
cache_get_field_content(idx-1,"lRank8",LeaderInfo[idx][lRank8],MYSQL_ARG,36);
cache_get_field_content(idx-1,"lRank9",LeaderInfo[idx][lRank9],MYSQL_ARG,36);
cache_get_field_content(idx-1,"lRank10",LeaderInfo[idx][lRank10],MYSQL_ARG,36);
cache_get_field_content(idx-1,"lSkin1",temp,MYSQL_ARG), LeaderInfo[idx][lSkin1] = strval(temp);
cache_get_field_content(idx-1,"lSkin2",temp,MYSQL_ARG), LeaderInfo[idx][lSkin2] = strval(temp);
cache_get_field_content(idx-1,"lSkin3",temp,MYSQL_ARG), LeaderInfo[idx][lSkin3] = strval(temp);
cache_get_field_content(idx-1,"lSkin4",temp,MYSQL_ARG), LeaderInfo[idx][lSkin4] = strval(temp);
cache_get_field_content(idx-1,"lSkin5",temp,MYSQL_ARG), LeaderInfo[idx][lSkin5] = strval(temp);
cache_get_field_content(idx-1,"lSkin6",temp,MYSQL_ARG), LeaderInfo[idx][lSkin6] = strval(temp);
cache_get_field_content(idx-1,"lSkin7",temp,MYSQL_ARG), LeaderInfo[idx][lSkin7] = strval(temp);
cache_get_field_content(idx-1,"lSkin8",temp,MYSQL_ARG), LeaderInfo[idx][lSkin8] = strval(temp);
cache_get_field_content(idx-1,"lSkin9",temp,MYSQL_ARG), LeaderInfo[idx][lSkin9] = strval(temp);
cache_get_field_content(idx-1,"lSkin10",temp,MYSQL_ARG), LeaderInfo[idx][lSkin10] = strval(temp);
frac ++;
}
}
printf("[mysql][Загружено фракций]: <%i>. Времени затрачено: <%i мс>",frac,GetTickCount()-time);
return true;
}
Вызов загрузки фракций:

mysql_function_query(MYSQL_ARG, "SELECT * FROM `"TABLE_FRACTIONS"`", true, "OnFractionsLoad","");
В базе данных 2-е фракции с newid 1 и 2. Но загружается только первая фракция, в чём проблема?

DeimoS
24.05.2014, 17:35
Дело в коде. Покажите массив LeaderInfo

wAx
25.05.2014, 08:08
public OnFractionsLoad()
{
new time = GetTickCount();
new temp[32],rows,fields,frac;
cache_get_data(rows,fields);
if(rows)
{
for(new idx = 1; idx <= rows; idx++)
{
cache_get_field_content(idx-1,"newid",temp,MYSQL_ARG), LeaderInfo[idx-1][lID] = strval(temp);
cache_get_field_content(idx-1,"leader",LeaderInfo[idx-1][lLeader],MYSQL_ARG,36);
cache_get_field_content(idx-1,"fraction",LeaderInfo[idx-1][lName],MYSQL_ARG,36);
cache_get_field_content(idx-1,"lRank1",LeaderInfo[idx-1][lRank1],MYSQL_ARG,36);
cache_get_field_content(idx-1,"lRank2",LeaderInfo[idx-1][lRank2],MYSQL_ARG,36);
cache_get_field_content(idx-1,"lRank3",LeaderInfo[idx-1][lRank3],MYSQL_ARG,36);
cache_get_field_content(idx-1,"lRank4",LeaderInfo[idx-1][lRank4],MYSQL_ARG,36);
cache_get_field_content(idx-1,"lRank5",LeaderInfo[idx-1][lRank5],MYSQL_ARG,36);
cache_get_field_content(idx-1,"lRank6",LeaderInfo[idx-1][lRank6],MYSQL_ARG,36);
cache_get_field_content(idx-1,"lRank7",LeaderInfo[idx-1][lRank7],MYSQL_ARG,36);
cache_get_field_content(idx-1,"lRank8",LeaderInfo[idx-1][lRank8],MYSQL_ARG,36);
cache_get_field_content(idx-1,"lRank9",LeaderInfo[idx-1][lRank9],MYSQL_ARG,36);
cache_get_field_content(idx-1,"lRank10",LeaderInfo[idx-1][lRank10],MYSQL_ARG,36);
cache_get_field_content(idx-1,"lSkin1",temp,MYSQL_ARG), LeaderInfo[idx-1][lSkin1] = strval(temp);
cache_get_field_content(idx-1,"lSkin2",temp,MYSQL_ARG), LeaderInfo[idx-1][lSkin2] = strval(temp);
cache_get_field_content(idx-1,"lSkin3",temp,MYSQL_ARG), LeaderInfo[idx-1][lSkin3] = strval(temp);
cache_get_field_content(idx-1,"lSkin4",temp,MYSQL_ARG), LeaderInfo[idx-1][lSkin4] = strval(temp);
cache_get_field_content(idx-1,"lSkin5",temp,MYSQL_ARG), LeaderInfo[idx-1][lSkin5] = strval(temp);
cache_get_field_content(idx-1,"lSkin6",temp,MYSQL_ARG), LeaderInfo[idx-1][lSkin6] = strval(temp);
cache_get_field_content(idx-1,"lSkin7",temp,MYSQL_ARG), LeaderInfo[idx-1][lSkin7] = strval(temp);
cache_get_field_content(idx-1,"lSkin8",temp,MYSQL_ARG), LeaderInfo[idx-1][lSkin8] = strval(temp);
cache_get_field_content(idx-1,"lSkin9",temp,MYSQL_ARG), LeaderInfo[idx-1][lSkin9] = strval(temp);
cache_get_field_content(idx-1,"lSkin10",temp,MYSQL_ARG), LeaderInfo[idx-1][lSkin10] = strval(temp);
frac ++;
}
}
printf("[mysql][Загружено фракций]: <%i>. Времени затрачено: <%i мс>",frac,GetTickCount()-time);
return true;
}

Пробуй!

DeimoS
25.05.2014, 10:07
Тогда уж лучше так

public OnFractionsLoad()
{
new time = GetTickCount(),
temp[32],
rows,
fields;
cache_get_data(rows,fields);
if(!rows) return print("Error: Таблица с фракциями пуста");
for(new idx; idx != rows; idx++)
{
cache_get_field_content(idx,"newid",temp,MYSQL_ARG), LeaderInfo[idx][lID] = strval(temp);
cache_get_field_content(idx,"leader", LeaderInfo[idx][lLeader], MYSQL_ARG, 36);
cache_get_field_content(idx,"fraction", LeaderInfo[idx][lName],MYSQL_ARG, 36);
cache_get_field_content(idx,"lRank1", LeaderInfo[idx][lRank1], MYSQL_ARG, 36);
cache_get_field_content(idx,"lRank2", LeaderInfo[idx][lRank2], MYSQL_ARG, 36);
cache_get_field_content(idx,"lRank3", LeaderInfo[idx][lRank3], MYSQL_ARG, 36);
cache_get_field_content(idx,"lRank4", LeaderInfo[idx][lRank4], MYSQL_ARG, 36);
cache_get_field_content(idx,"lRank5", LeaderInfo[idx][lRank5], MYSQL_ARG, 36);
cache_get_field_content(idx,"lRank6", LeaderInfo[idx][lRank6], MYSQL_ARG, 36);
cache_get_field_content(idx,"lRank7", LeaderInfo[idx][lRank7], MYSQL_ARG, 36);
cache_get_field_content(idx,"lRank8", LeaderInfo[idx][lRank8], MYSQL_ARG, 36);
cache_get_field_content(idx,"lRank9", LeaderInfo[idx][lRank9], MYSQL_ARG, 36);
cache_get_field_content(idx,"lRank10", LeaderInfo[idx][lRank10], MYSQL_ARG, 36);
cache_get_field_content(idx,"lSkin1",temp,MYSQL_ARG), LeaderInfo[idx][lSkin1] = strval(temp);
cache_get_field_content(idx,"lSkin2",temp,MYSQL_ARG), LeaderInfo[idx][lSkin2] = strval(temp);
cache_get_field_content(idx,"lSkin3",temp,MYSQL_ARG), LeaderInfo[idx][lSkin3] = strval(temp);
cache_get_field_content(idx,"lSkin4",temp,MYSQL_ARG), LeaderInfo[idx][lSkin4] = strval(temp);
cache_get_field_content(idx,"lSkin5",temp,MYSQL_ARG), LeaderInfo[idx][lSkin5] = strval(temp);
cache_get_field_content(idx,"lSkin6",temp,MYSQL_ARG), LeaderInfo[idx][lSkin6] = strval(temp);
cache_get_field_content(idx,"lSkin7",temp,MYSQL_ARG), LeaderInfo[idx][lSkin7] = strval(temp);
cache_get_field_content(idx,"lSkin8",temp,MYSQL_ARG), LeaderInfo[idx][lSkin8] = strval(temp);
cache_get_field_content(idx,"lSkin9",temp,MYSQL_ARG), LeaderInfo[idx][lSkin9] = strval(temp);
cache_get_field_content(idx,"lSkin10",temp,MYSQL_ARG), LeaderInfo[idx][lSkin10] = strval(temp);
}
printf("[mysql][Загружено фракций]: <%i>. Времени затрачено: <%i мс>", rows, GetTickCount()-time);
return true;
}