Доброго времени суток.
Написал систему одну, ну и вижу, что код получился, мягко говоря "не очень"
Может будут у кого-то мысли по его оптимизации?
Запрос в БД
PHP код:
mysql_function_query(MysqlConnect, "SELECT `p_leader`,`online_status`,`nickname` FROM `"TABLE_ACC"`", true, "OnCheckLEADCallBack","");
PHP код:
forward OnCheckLEADCallBack();
public OnCheckLEADCallBack()
{
new rows, fields;
cache_get_data(rows, fields,MysqlConnect);
cache_get_row_count(rows);
if(rows == 0) return 1;
new count[2];
new online_pl = -1;
new names_one[MAX_PLAYER_NAME+1];
new names_two[MAX_PLAYER_NAME+1];
new pl_leader;
for(new i = 0; i < rows; i++)
{
pl_leader = cache_get_field_content_int(i,"p_leader",MysqlConnect);
if(pl_leader == 0) continue;
if(count[0] != 0 && count[1] != 0) break;
if(pl_leader == 6)
{
online_pl = cache_get_field_content_int(i,"online_status",MysqlConnect);
if(online_pl == -1) cache_get_field_content(i,"nickname",names_one,MysqlConnect,MAX_PLAYER_NAME);
else GetPlayerName(online_pl,names_one,MAX_PLAYER_NAME);
count[0] ++;
continue;
}
else if(pl_leader != 6)
{
if(count[0] == 0)
{
strmid(names_one, "Нет", 0, strlen("Нет"), 4);
continue;
}
}
if(pl_leader == 8)
{
online_pl = cache_get_field_content_int(i,"online_status",MysqlConnect);
if(online_pl == -1) cache_get_field_content(i,"nickname",names_two,MysqlConnect,MAX_PLAYER_NAME);
else GetPlayerName(online_pl,names_two,MAX_PLAYER_NAME);
count[1] ++;
continue;
}
else if(pl_leader != 8)
{
if(count[1] == 0)
{
strmid(names_two, "Нет", 0, strlen("Нет"), 4);
continue;
}
}
}
printf("На выходе получаем: Names1: %s | Names2: %s",names_one,names_two);
return 1;
}